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]]
二、選取標簽為C并且只取前兩行,選完類型還是dataframe
df = df.loc[0:2, ['A', 'C']] df = df.iloc[0:2, [0, 2]]
聰明的朋友已經(jīng)看出iloc和loc的不同了:loc是根據(jù)dataframe的具體標簽選取列,而iloc是根據(jù)標簽所在的位置,從0開始計數(shù)。
","前面的":"表示選取整列,第二個示例中的的0:2表示選取第0行到第二行,這里的0:2相當于[0,2)前閉后開,2是不在范圍之內(nèi)的。
需要注意的是,如果是df = df.loc[0:2, ['A', 'C']]或者df = df.loc[0:2, ['A', 'C']],切片之后類型依舊是dataframe,不能直接進行
加減乘除等操作的,比如dataframe的一列是數(shù)學(xué)成績(shuxue),另一列為語文成績(yuwen),現(xiàn)在需要求兩門課程的總和??梢允褂胐f['shuxue'] + df['yuwen'](選取完之后類型為series)來獲得總分,而不能使用df.iloc[:,[2]]+df.iloc[:,[1]]或df.iloc[:,['shuxue']]+df.iloc[:,['yuwen']],這會產(chǎn)生錯誤結(jié)果。
還有一種方式是使用df.icol(i)來選取列,選取完的也不是dataframe而是series,i為該列所在的位置,從0開始計數(shù)。
如果你想要選取某一行的數(shù)據(jù),可以使用df.loc[[i]]或者df.iloc[[i]]。
以上這篇python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
