建立Series
from pandas import Series,DataFrameimport numpy as npimport pandas as pd
obj=Series(np.arange(4),index=['a','b','c','d'])objOut[5]: a 0b 1c 2d 3dtype: int32
选取
obj['b']Out[6]: 1obj[1]Out[7]: 1obj[3]Out[8]: 3
obj[2:4]Out[10]: c 2d 3dtype: int32
obj[['b','a','d']]Out[11]: b 1a 0d 3dtype: int32
obj[[1,3]]Out[12]: b 1d 3dtype: int32
obj[obj<2]Out[13]: a 0b 1dtype: int32
利用标签切片与普通python 切片不同,python是左闭右开区间[a,b),而标签切片是闭合区间[a,b]
In [14]: obj['b':'c']Out[14]: b 1c 2dtype: int32
obj['b','c']=5objOut[16]: a 0b 5c 5d 3dtype: int32
DataFrame 选取
data=DataFrame(np.arange(16).reshape((4,4)),index=['ohio','colorado','utah','new york'],columns=['one','two','three','four'])
dataOut[18]: one two three fourohio 0 123colorado 4 567utah 8 910 11new york 12 1314 15
data['two']Out[19]: ohio 1colorado5utah 9new york 13Name: two, dtype: int32
data[['three','one']]Out[20]: three oneohio2 0colorado6 4utah 10 8new york14 12
data[:2]Out[21]: one two three fourohio 0 123colorado 4 567
data[data['three']>5]Out[22]: one two three fourcolorado 4 567utah 8 910 11new york 12 1314 15
data<5Out[23]: one two three fourohio True True True Truecolorado True False False FalseutahFalse False False Falsenew york False False False False
data[data<5]=0dataOut[26]: one two three fourohio 0 000colorado 0 567utah 8 910 11new york 12 1314 15
ix的用法
dataOut[26]: one two three fourohio 0 000colorado 0 567utah 8 910 11new york 12 1314 15
data.ix['colorado',['two','three']]Out[27]: two5three 6Name: colorado, dtype: int32
data.ix[['colorado','utah'],[3,0,1]]Out[29]: four one twocolorado7 0 5utah 11 8 9
data.ix[2]Out[6]: one 8two 9three 10four11Name: utah, dtype: int32
data.ix[:'utah','two']Out[9]: ohio 1colorado 5utah 9Name: two, dtype: int32
data.ix[data.three>5]Out[13]: one two three fourcolorado 4 567utah 8 910 11new york 12 1314 15data.ix[data.three>5,:3]Out[14]: one two threecolorado 4 56utah 8 910new york 12 1314