您好,登錄后才能下訂單哦!
這篇文章主要講解了“pandas怎么篩選指定行或者指定列的數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“pandas怎么篩選指定行或者指定列的數據”吧!
pandas主要的兩個數據結構是:series(相當于一行或一列數據機構)和DataFrame(相當于多行多列的一個表格數據機構)。
本文為了方便理解會與excel或者sql操作行或列來進行聯想類比
1.重新索引:reindex和ix
上一篇中介紹過數據讀取后默認的行索引是0,1,2,3...這樣的順序號。列索引相當于字段名(即第一行數據),這里重新索引意思就是可以將默認的索引重新修改成自己想要的樣子。
1.1 Series
比方說:data=Series([4,5,6],index=['a','b','c']),行索引為a,b,c。
我們用data.reindex(['a','c','d','e'])修改索引后則輸出:
可以理解成我們用reindex設了索引后,根據索引去原來data里面匹配對應的值,沒匹配上的就是NaN。
1.2 DataFrame
(1)行索引修改:DataFrame行索引同Series
(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用參數columns來指定對列索引進行修改。修改邏輯類似行索引,也是相當于用新列索引去匹配原來的數據,沒匹配上的置NaN
例:
(3)同時對行和列索引進行修改可以用
2.丟棄指定軸上的列(通俗的說法就是刪除行或者列):drop
通過索引進行選擇刪除哪一行或者哪一列
data.drop(['a','c']) 相當于delete table a where xid='a' or xid='c'
data.drop('m1',axis=1)相當于delete table a where yid='m1'
3.選取和過濾(通俗的說就是sql中按照條件篩選查詢)
python中因為有行列索引,在做數據的篩選會比較方便
3.1 Series
(1)按照行索引進行選擇如
obj['b']相當于select * from tb where xid='b'obj['b','a','c']
相當于select * from tb where xid in ('a','b','c')
,且結果按照b ,a ,c 的順序排列后進行展示,這是與sql的區別obj[0:1]和obj['a':'b']的區別如下:
#前者是不包含末端,后者是包含了末端
(2)按照值的大小進行篩選obj[obj>-0.6]相當于在obj數據中找出值比-0.6大的記錄進行展示
3.2 DataFrame
(1)選擇單行用ix或者xs:
如篩選索引為b的那條行記錄用以下三種方式
(2)選擇多行:
篩選索引為a,b的兩條行記錄的方式
#以上不能直接寫成data[['a','b']]
data[0:2]表示從第一行到第二行的記錄。第一行默認從0開始數,不包含末端的2。
(3)選擇單列
篩選m1列的所有行記錄數據
(4)選擇多列
篩選m1,m3兩個列,所有行記錄的數據
ix[:,['m1','m2']]前面的:表示所有的行都篩選進來。
(5)根據值的大小條件篩選行或者列
如篩選出某一列值大于4的所有記錄相當于select * from tb where 列名>4
(6)如果篩選某列值大于4的所有記錄,且只需展示部分列的情況時
行用條件進行篩選,列用[0,2]篩選第一列和第三列的數據
感謝各位的閱讀,以上就是“pandas怎么篩選指定行或者指定列的數據”的內容了,經過本文的學習后,相信大家對pandas怎么篩選指定行或者指定列的數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。