pandas数据结构介绍
Series
- Series最重要的一个功能:在算术运算中会自动对齐不同索引的数据(键相同)。
- Series对象本身及其索引都有一个name属性。
1 |
|
DataFrame
DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型。既有行索引也有列索引。可看做由Series组成的字典。
以二维结构保存数据,可视为多维数据(层次化索引的表格型结构是pandas中许多高级数据处理功能的关键要素)。
- 构建DataFrame方式一
方式一:直接传入一个由等长列表或NumPy数组组成的字典:
1 | ## 构建 |
1.1. 指定列序列
1 | frame2 = DataFrame(data, columns=['year', 'state', 'pop']) |
1.2. 通过字典标记方式或属性方式,获取一个Series
1 | # print frame2['state'] |
1.3. 行,通过名称或位置获取,如用索引字段ix
1 | # print frame2.ix[1] |
1.4. 直接给列赋值,新建test列,赋值2.3
1 | frame2['test'] = 2.3 |
将列表或数组赋值给某个列时,长度必须和DataFrame相匹配;空位都将填上缺失值NaN。
- 构建DataFrame方式二
方式二:嵌套字典,即字典的字典。
1 | pop = {'Nevada': {2001:2.3, 2004:3.4}, |
2.1 设置index和columns的name属性
1 | frame3.index.name = 'year';frame3.columns.name = 'state' |
2.2 value属性会以二维ndarray形式返回DataFrame中的数据
1 | # print frame3.values |
索引对象
pandas索引对象负责管理轴标签和其他元数据(比如轴名称等)。
Index对象不可修改。此特性非常重要,使得Index对象在多个数据结构之间安全共享。
基本功能
重新索引reindex
1 |
|
丢弃指定轴上的项
1 | obj = Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e']) |
索引、选取和过滤
利用标签的切片与普通Python切片运算不同,末端是包含的,即封闭区间。如
1 | obj = Series(np.arange(4.), index=['a','b','c','d']) |
算术运算和数据对齐
对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。
1 | s1 = Series([7.3, 4.5, 67.1, 2.3], index=['a', 'b', 'd', 'f']) |
排序和排名
1 | # obj = Series(range(4), index=['d','c','b','a']) |
按值对Series排序,用其order方法;
排序时缺失值会被放到Series末尾。
sort_index()方法已过时,用sort_value()方法代替。
1 | # DataFrame根据列值排序,传列名给by选项 |
排序
1 | obj = Series([7, 3, 5, 7, 9, 3, 1]) |
汇总和计算描述统计
- axis(约简的 轴)选项标明是按行还是按列;如axis=0按列,axis=1按行。
- skipna 排除缺失值,默认值True
- level 轴是层次化索引的,则根据level分组约简
第五章于20170319结束,时间节点设计有问题,现在需要手动敲的越来越多,所以速度跟不上,尤其是精力跟不上了。看书要分主次,重要的知识点要细看,必须手动敲出来;一些同类化的知识可以跳着看,以节省时间。
但是有一个原则不能改,一些重要的知识点不能跳过,需要真真的✋敲出来。不然那就是真正的浪费时间。
- 本文作者: Linking
- 本文链接: https://linking.fun/2017/03/19/《利用Python进行数据分析》读书笔记-5-第五章-pandas入门/
- 版权声明: 版权所有,转载请注明出处!