pandas主要的两个数据结构是:Series 和DataFrame
1、Series
series 类似于一维数组,由 索引+数据组成
若不指定索引,则会自动创建0到N-1的整数型索引,
可以用series的values获取数组值,用index获取索引值。
import pandas as pd obj = pd.Series ([3,6,9,7],index = [‘c‘,‘b‘,‘d‘,‘a‘]) obj 返回为 c 3 b 6 d 9 a 7 dtype: int64 此时可以通过索引选取值 obj[‘d‘] 返回为 9
Numpy的数组运算(布尔型数组过滤、标量乘、数学函数)不会改变索引和值之间的链接
obj * 3 c 9 b 18 d 27 a 21 dtype: int64 np.exp(obj) c 20.085537 b 403.428793 d 8103.083928 a 1096.633158 dtype: float64
如果数据存放在一个Python字典中,可以通过字典来创建Series
data = {‘JiangSu‘:20000,‘JiangXi‘:35000,‘FuJian‘:15000,‘GuangDong‘:40000} obj = pd.Series(data) obj 返回为 JiangSu 20000 JiangXi 35000 FuJian 15000 GuangDong 40000 dtype: int64
如果只传如一个字典,则Series的索引就是原字典的键。
states = [‘FuJian‘,‘JiangSu‘,‘ZheJiang‘] obj1 = pd.Series(data,index = states) obj1 返回为 FuJian 15000.0 JiangSu 20000.0 ZheJiang NaN dtype: float64
在pandas中一般用isnull、notnull检测缺失值。
series最重要的一个功能是:可以在算数运算中自动对齐不同索引的数据
obj +obj1 返回为 FuJian 30000.0 GuangDong NaN JiangSu 40000.0 JiangXi NaN ZheJiang NaN dtype: float64
Series的对象本身和索引都有一个name属性
obj1.name = ‘population‘ obj1.index.name = ‘state‘ obj1 返回为 state FuJian 15000.0 JiangSu 20000.0 ZheJiang NaN Name: population, dtype: float64
series也可以通过赋值的方式就地修改
2、DataFrame
dataframe既有行索引,又有列索引,可以被看作由series组成的字典(共用一个索引)
传入一个由等长列表或Numpy数组组成的字典,如果传入时不加索引,则dataframe自动加上索引
data = {‘state‘:[‘JiangSu‘,‘JiangXi‘,‘ZheJiang‘,‘GuangDong‘],‘year‘:[2008,2009,2010,2011],‘pop‘:[1.5,1.8,2.5,2.9]} frame = pd.DataFrame(data) frame frame2 = pd.dataframe(data,columns = [‘year‘,‘state‘,‘pop‘,‘debt‘],index = [‘one‘,‘two‘,‘three‘,‘four‘]) frame2 返回为 state year pop 0 JiangSu 2008 1.5 1 JiangXi 2009 1.8 2 ZheJiang 2010 2.5 3 GuangDong 2011 2.9 frame2 = pd.DataFrame(data,columns = [‘year‘,‘state‘,‘pop‘,‘debt‘],index = [‘one‘,‘two‘,‘three‘,‘four‘]) frame2 返回为 year state pop debt one 2008 JiangSu 1.5 NaN two 2009 JiangXi 1.8 NaN three 2010 ZheJiang 2.5 NaN four 2011 GuangDong 2.9 NaN
DataFrame一般用索引字段ix来执行
frame2.ix[‘four‘] 返回为 year 2011 state GuangDong pop 2.9 debt NaN Name: four, dtype: object
也可以通过赋值进行修改
frame2[‘debt‘] = 15
frame2
返回为
year | state | pop | debt | |
---|---|---|---|---|
one | 2008 | JiangSu | 1.5 | 15 |
two | 2009 | JiangXi | 1.8 | 15 |
three | 2010 | ZheJiang | 2.5 | 15 |
four | 2011 | GuangDong | 2.9 | 15 |
DataFrame另外一种数据形式是嵌套字典,被解释为:外层字典的键作为列,内层字典则作为行索引。
DataFrame的索引对象:
《利用python进行数据分析》学习笔记--pandas(1)
原文:https://www.cnblogs.com/jx1111jx/p/9538895.html