溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

發(fā)布時間:2021-09-06 16:54:42 來源:億速云 閱讀:479 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“pandas怎么篩選指定行或者指定列的數(shù)據(jù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“pandas怎么篩選指定行或者指定列的數(shù)據(jù)”吧!

pandas主要的兩個數(shù)據(jù)結(jié)構(gòu)是:series(相當(dāng)于一行或一列數(shù)據(jù)機(jī)構(gòu))和DataFrame(相當(dāng)于多行多列的一個表格數(shù)據(jù)機(jī)構(gòu))。

本文為了方便理解會與excel或者sql操作行或列來進(jìn)行聯(lián)想類比

1.重新索引:reindex和ix

上一篇中介紹過數(shù)據(jù)讀取后默認(rèn)的行索引是0,1,2,3...這樣的順序號。列索引相當(dāng)于字段名(即第一行數(shù)據(jù)),這里重新索引意思就是可以將默認(rèn)的索引重新修改成自己想要的樣子。

1.1 Series

比方說:data=Series([4,5,6],index=['a','b','c']),行索引為a,b,c。

我們用data.reindex(['a','c','d','e'])修改索引后則輸出:

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

可以理解成我們用reindex設(shè)了索引后,根據(jù)索引去原來data里面匹配對應(yīng)的值,沒匹配上的就是NaN。

1.2 DataFrame

(1)行索引修改:DataFrame行索引同Series

(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用參數(shù)columns來指定對列索引進(jìn)行修改。修改邏輯類似行索引,也是相當(dāng)于用新列索引去匹配原來的數(shù)據(jù),沒匹配上的置NaN

例:

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

(3)同時對行和列索引進(jìn)行修改可以用

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

2.丟棄指定軸上的列(通俗的說法就是刪除行或者列):drop

通過索引進(jìn)行選擇刪除哪一行或者哪一列

data.drop(['a','c']) 相當(dāng)于delete table a where xid='a' or xid='c'

data.drop('m1',axis=1)相當(dāng)于delete table a where yid='m1'

3.選取和過濾(通俗的說就是sql中按照條件篩選查詢)

python中因為有行列索引,在做數(shù)據(jù)的篩選會比較方便

3.1 Series

(1)按照行索引進(jìn)行選擇如

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

obj['b']相當(dāng)于select * from tb where xid='b'obj['b','a','c']相當(dāng)于select * from tb where xid in ('a','b','c'),且結(jié)果按照b ,a ,c 的順序排列后進(jìn)行展示,這是與sql的區(qū)別obj[0:1]和obj['a':'b']的區(qū)別如下:

#前者是不包含末端,后者是包含了末端

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

(2)按照值的大小進(jìn)行篩選obj[obj>-0.6]相當(dāng)于在obj數(shù)據(jù)中找出值比-0.6大的記錄進(jìn)行展示

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

3.2 DataFrame

(1)選擇單行用ix或者xs:

如篩選索引為b的那條行記錄用以下三種方式

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

(2)選擇多行:

篩選索引為a,b的兩條行記錄的方式

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

#以上不能直接寫成data[['a','b']]

data[0:2]表示從第一行到第二行的記錄。第一行默認(rèn)從0開始數(shù),不包含末端的2。

(3)選擇單列

篩選m1列的所有行記錄數(shù)據(jù)

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

(4)選擇多列

篩選m1,m3兩個列,所有行記錄的數(shù)據(jù)

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

ix[:,['m1','m2']]前面的:表示所有的行都篩選進(jìn)來。

(5)根據(jù)值的大小條件篩選行或者列

如篩選出某一列值大于4的所有記錄相當(dāng)于select * from tb where 列名>4

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

(6)如果篩選某列值大于4的所有記錄,且只需展示部分列的情況時

pandas怎么篩選指定行或者指定列的數(shù)據(jù)

行用條件進(jìn)行篩選,列用[0,2]篩選第一列和第三列的數(shù)據(jù)

感謝各位的閱讀,以上就是“pandas怎么篩選指定行或者指定列的數(shù)據(jù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對pandas怎么篩選指定行或者指定列的數(shù)據(jù)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI