loc:通過選取行(列)標籤索引數據 iloc:通過選取行(列)位置編號索引數據 ix:既可以通過行(列)標籤索引數據,也可以通過行(列)位置編號索引數據 df是一個dataframe,列名爲A B C D 具體值如下: A B C D 0 ss 小紅 8 1 aa 小明 d 4 f f 6 ak 小紫 7
dataframe裏的屬性是不定的,空值默認爲NA。 一、選取標籤爲A和C的列,並且選完類型還是dataframe df = df.loc[:, ['A', 'C']] df = df.iloc[:, [0, 2]] 二、選取標籤爲A和C的列並且只取前兩行,選完類型還是dataframe df = df.loc[0:2, ['A', 'C']] df = df.iloc[0:2, [0, 2]] 三、選取行,選完類型還是dataframe df = df.loc[0:2,:] 選取0-2行,[0,2]閉區間 df = df.iloc[0:2,:] 選取0-2行,[0,2]閉區間 聰明的朋友已經看出iloc和loc的不同了:loc是根據dataframe的具體標籤選取列,而iloc是根據標籤所在的位置,從0開始計數。 ","前面的":"表示選取整行,第二個示例中的的0:2表示選取第0行到第二行,這裏的0:2相當於[0,2)前閉後開,2是不在範圍之內的。 需要注意的是,如果是df = df.loc[0:2, ['A', 'C']]或者df = df.loc[0:2, ['A', 'C']],切片之後類型依舊是dataframe,不能直接進行。 加減乘除等操作的,比如dataframe的一列是數學成績(shuxue),另一列爲語文成績(yuwen),現在需要求兩門課程的總和。可以使用df['shuxue'] + df['yuwen'](選取完之後類型爲series)來獲得總分,而不能使用df.iloc[:,[2]]+df.iloc[:,[1]]或df.iloc[:,['shuxue']]+df.iloc[:,['yuwen']],這會產生錯誤結果。