pandas數據處理基礎——篩選指定行或者指定列的數據

        pandas主要的兩個數據結構是:series(至關於一行或一列數據機構)和DataFrame(至關於多行多列的一個表格數據機構)。python

        本文爲了方便理解會與excel或者sql操做行或列來進行聯想類比sql

 

1.從新索引:reindex和ix數據結構

 

上一篇中介紹過數據讀取後默認的行索引是0,1,2,3...這樣的順序號。列索引至關於字段名(即第一行數據),這裏從新索引意思就是能夠將默認的索引從新修改爲本身想要的樣子。spa

 

1.1 Seriesexcel

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

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

 

能夠理解成咱們用reindex設了索引後,根據索引去原來data裏面匹配對應的值,沒匹配上的就是NaN。pandas

 

1.2 DataFrametable

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

(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]篩選第一列和第三列的數據 

相關文章
相關標籤/搜索