在pandas iloc vs ix vs loc explanation?中,它提到:ix
通常會嘗試像loc
一樣行爲,但如果標籤不在索引中,則會退回到iloc
的行爲。ix沒有按要求提及索引
對於下面的例子,當我使用ix [0]時,它不起作用,發生了什麼?
在pandas iloc vs ix vs loc explanation?中,它提到:ix
通常會嘗試像loc
一樣行爲,但如果標籤不在索引中,則會退回到iloc
的行爲。ix沒有按要求提及索引
對於下面的例子,當我使用ix [0]時,它不起作用,發生了什麼?
簡短說明
考慮數據框df
df = pd.DataFrame(
np.arange(16).reshape(4, 4),
list('wxyz'), list('abcd'))
a b c d
w 0 1 2 3
x 4 5 6 7
y 8 9 10 11
z 12 13 14 15
iloc
是基於序號位置索引
df.iloc[[0, 3], [1, 2]]
b c
w 1 2
z 13 14
loc
是基於標籤索引
df.loc[['z', 'x'], ['b', 'c']]
b c
z 13 14
x 5 6
ix
嘗試是聰明的,並找出你所需要的,但有時是混亂的,最重要的將被淘汰,不應該被使用!
您可以檢查docs:
九支持混合整數和標籤的訪問。它主要是基於標籤的,但是會回退到整數位置訪問,除非相應的軸是整數類型。 .ix是最一般的,並且將支持在.loc和.iloc中的任何輸入。 .ix也支持浮點標籤方案。 .ix在處理基於混合位置和標籤的分層索引時非常有用。
然而,當軸線基於整型,ONLY 基於標籤訪問而不是位置訪問被支持。因此,在這種情況下,通常更好的做法是明確並使用.iloc或.loc。