-
Series类型:由一组数据与之相对应的索引组成
使用:(python列表创建)
自动索引:d=pd.Series(range(20))
自定义索引:b=pd.Series([9,8,7,6],index=['a','b','c','d'])
自动索引和自定义索引并存,但不能混用
创建Series- 标量值:
s=pd.Series(25,index=['a','b','c'])
- 字典类型:
d=pd.Series({'a': 9,'b': 8})
- ndarray:
n=pd.Series(np.arange(5))
或者n=pd.Series(np.arange(5),index=np.arange(9,4,1))
基本操作b是一个Series类型 - b.index得到索引值
- b.values得到数据值
- np.exp(b) 只对b的value部分计算
- 对齐操作:Series+Series
例如:a=pd.Series([1,2,3],['c','d','e'])
和b=pd.Series([9,8,7,6],['a','b','c','d'])
-->a+b结果中存在的相加,不存在的直接为NaN
修改后立即生效
- 标量值:
-
DataFrame类型
表格型数据类型,每列值类型可能不同。既有行索引,又有列索引。
创建DataFrame- 二维ndarray对象
d=pd.DataFrame(np.arange(10).reshape(2,5))
- 从一维ndarray对象字典创建
dt={'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([9,8,7,6],index=['a','b','c','d'])}
d=pd.DataFrame(dt)
- 列表类型的字典创建
dl={'one':[1,2,3,4],'two':[9,8,7,6]}
d=pd.DataFrame(dl,index=['a','b','c','d'])
操作:
获取一列元素:d['列标签']
获取一行元素:d.ix['行号']
获取某个元素:d['列号']['行号']
重新索引:增加和重排--reindex
在行方向重排:d=d.reindex(index=['d','c','b','a'])
在纵向上重排:d=d.reindex(columns=['城市','同比'...])
重新索引
增加新列:newc=d.columns.insert(4,'新增')
,newd=d.reindex(columns=new,fill_value=200)
Series与DataFrame的索引都是Index类型,Index对象不可修改 索引类型的常用方法 删除指定索引对象
.drop()能够删除Series和DataFrame指定行或列索引、
删除行:a.drop('c1') a.drop(['c1','c2'])
删除列:a.drop('同比',axis=1)
- 二维ndarray对象
-
运算
- 算术运算(四则运算):根据索引运算,二维和一维、一维和零维间为广播运算,产生的运算结果为浮点型
- 算术运算的另一种形式--【.add(d,argws) .sub(d,argws) .mul(d,argws) .div(d,argws)】
例如:a.add(b,fill_value=100) 即a+b,不存在的部分使用100填充相加 - 不同维运算,其结果发生在行方向上(轴1),可指定axis=0使其发生在轴0上运算。
- 比较运算--比较运算只能比较相同索引的元素,不进行补齐,二维和一维、一维和零维间为广播运算,采用大于、小于、大于等于、等于、不等于产生布尔对象。多维之间的比较尺寸相同,不同会报错
网友评论