首頁 >後端開發 >Python教學 >pandas資料處理基礎之篩選指定行或指定列的數據

pandas資料處理基礎之篩選指定行或指定列的數據

不言
不言原創
2018-05-03 13:31:4222102瀏覽

這篇文章主要介紹了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' 或 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資料樣本行列選取的方法

python3 pandas 讀取MySQL資料和插入

##

以上是pandas資料處理基礎之篩選指定行或指定列的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn