我特別在談論Pandas版本0.11,因爲我正忙着用.loc或.iloc替換.ix的使用.ix。我喜歡區分.loc和.iloc的事實,我是否打算按標籤或整數位置進行索引。我發現任何一個人都可以接受布爾數組,但我想保持純粹的用法,以清楚地表達我的意圖。什麼是在熊貓中用布爾數組索引對象的最習慣方法?
4
A
回答
3
在11.0的所有三種方法的工作,順便suggested in the docs就是使用df[mask]
。然而,這是而不是完成的位置,但純粹使用標籤,所以在我看來loc
最好描述實際正在發生。
更新:我問的github這一點,結論在於df.iloc[msk]
將給予NotImplementedError
(如整數索引面罩)在大熊貓11.1
或ValueError
(如果非整數索引)。
In [1]: df = pd.DataFrame(range(5), list('ABCDE'), columns=['a'])
In [2]: mask = (df.a%2 == 0)
In [3]: mask
Out[3]:
A True
B False
C True
D False
E True
Name: a, dtype: bool
In [4]: df[mask]
Out[4]:
a
A 0
C 2
E 4
In [5]: df.loc[mask]
Out[5]:
a
A 0
C 2
E 4
In [6]: df.iloc[mask] # Due to this question, this will give a ValueError (in 11.1)
Out[6]:
a
A 0
C 2
E 4
也許值得一提的是,如果你給了面具整數索引,將拋出一個錯誤:
mask.index = range(5)
df.iloc[mask] # or any of the others
IndexingError: Unalignable boolean Series key provided
這表明ILOC實際上並沒有實現,它使用的標籤,因此爲什麼會11.1當我們嘗試這個時,拋出NotImplementedError
。
0
相關問題
- 1. 熊貓布爾索引
- 2. 熊貓多指數布爾索引
- 3. 在熊貓數據框中使用「對立布爾值」的正確方法布爾索引
- 4. 熊貓:爲什麼雙括號需要布爾索引
- 5. MultiIndex df(熊貓)布爾索引
- 6. 什麼是Haskell中多指標集合最習慣的方法?
- 7. 創建Objective-C對象的最佳編程習慣是什麼?
- 8. 熊貓:使用'item in list'語法的布爾索引
- 9. 在熊貓中解析POSIX時間戳的習慣用法?
- 10. 熊貓索引isin方法
- 11. 在lucene中索引布爾值的最佳選擇是什麼?
- 12. 熊貓的布爾對象是不可調用的
- 13. 引用對象的好習慣
- 14. 用熊貓做貪婪套裝的最快方法是什麼?
- 15. 嵌套減少 - 在Chapel中寫這些的最習慣的方法是什麼?
- 16. 熊貓非獨特索引對性能的影響是什麼?
- 17. 什麼是最好的方法索引到數組
- 18. Python熊貓羣體對象申請方法增加索引
- 19. 熊貓布爾comparisson對數據框
- 20. 在Objective-C中生成重排序數組的習慣用法是什麼?
- 21. 我會用什麼方法來引用數組中的對象?
- 22. 寫這個的最習慣的Clojure方式是什麼?
- 23. 對齊數字索引來在熊貓
- 24. 在數組中存儲數組或對象是否是一種好習慣?
- 25. python熊貓爲什麼會在對象中搜索結果
- 26. 什麼是熊貓記錄數組?
- 27. 什麼是在Go中表示枚舉的習慣用法?
- 28. 在Ruby中更新散列鍵的習慣用法是什麼?
- 29. 在Go中解析動態YAML的習慣用法是什麼?
- 30. 在D中解析事物的習慣用法是什麼?
謝謝,我沒有考慮整數索引的.iloc行爲。說實話,我實際上已經忘記了這個mask中有一個.index屬性,我把它當作純粹的布爾numpy數組。我同意,由於.index屬性實際上是用來首先進行對齊的,因此.loc可能是最好的選擇。 – snth