編輯: 一個簡單的錯誤/錯誤導致了一些不可解釋的問題。我編輯了這個問題,留下了實際可以解釋的部分,並且已經發布了答案。意外的熊貓廣播行爲
我在努力瞭解以下索引行爲: 假設我有一些pd.DataFrame
:
In [18]: Df = pd.DataFrame(zip(list('abcde'),sp.randn(5)),index=range(5),columns=['label','val'])
In [19]: Df
Out[19]:
label val
0 a -0.705392
1 b 0.087682
2 c 1.519180
3 d 1.363852
4 e -0.004182
,我試圖通過他們的一個正常化的val
所有值,說c
。 直覺我會寫
Df['val']/Df.loc[Df['label'] == 'c']['val']
但結果這會觸發一些廣播的行爲我不完全理解:
In [20]: Df['val']/Df.loc[Df['label'] == 'c']['val']
Out[20]:
0 NaN
1 NaN
2 1.0
3 NaN
4 NaN
Name: val, dtype: float64
爲什麼會出現這種情況?
當我看到標題我首先想到的是爲您指出[HTTPS:/ /biology.stackexchange.com/](https://biology.stackexchange.com/)。 – MichaelB76