Pandas基本功能之選取索引和過濾


索引、選取和過濾

大部分的查詢用法
類型 說明
obj[val] 選取DataFrame的單個列或一組列
obj.ix[val] 選取DataFrame的單個行或一組行
obj.ix[:,val] 選取單個列或列子集
obj.ix[val1,val2] 同時選取行和列
reindex方法 將一個或多個軸匹配到新索引
xs方法 根據標簽選取單行或單列,並返回一個Series
icol、irow方法 根據整數位置選取單列或單行,並返回Series
get_value、set_value方法 根據行標簽和列標簽選取單個值
示例
  • Series
obj = Series(np.arange(4.),index=['a','b','c','d'])
obj

a    0.0
b    1.0
c    2.0
d    3.0
dtype: float64
Series索引查
obj[1]
1.0
obj[1:3]
b    1.0
c    2.0
dtype: float64
Series索引的標簽查詢,它和切片的區別,不只顧頭還顧尾
obj['a':'c']

a    0.0
b    1.0
c    2.0
dtype: float64

obj['a':'c']=5
obj

a    5.0
b    5.0
c    5.0
d    3.0
dtype: float64
  • DataFrame

操作列進行查詢的方式

data = pd.DataFrame(np.arange(16).reshape(4,4),index=['a','b','c','d'],columns=['one','two','three','four'])
data

one	two	three	four
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15
直接操作索引會報錯,用索引查必須是切片,選取行
data[0:2]
        
one	two	three	four
a	0	0	0	0
b	0	5	6	7
可以用列索引的標簽名字查詢
data[['one','two','three']]

one	two	three
a	0	1	2
b	4	5	6
c	8	9	10
d	12	13	14

ix操作行進行查詢,ix[行,列]

data.ix[['a','b'],['two','four']]

two	four
a	1	3
b	5	7
ix查詢不只顧頭也顧尾
data.ix[:'c',:'two']
one	two
a	0	1
b	4	5
c	8	9
利用布爾值進行查詢
# 行大於7,的前兩列,這里邊的切片查詢依然是顧頭不顧尾
data.ix[data.three>7,:2]

one	two
c	8	9
d	12	13

個人總結查詢使用Series操作索引是直接行操作,如果使用DataFrame進行索引默認都是操作列,操作行需要使用ix


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM