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

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