合并数据集
pandas对象中的数据可通过内置方式合并:
- pandas.merge根据键将不同DataFrame种的行连接起来,实现的是数据库的连接操作;
- panda.concat沿一条轴将多个对象堆叠在一起;
- 实例方法combine_first将重复数据编结在一起,用一个对象中的值填写另一个中的缺失值。
数据库风格的DataFrame合并
数据集的合并(merge)和连接(join)是通过键将行连接起来的。
1 | df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'], |
两边都有的列就都有数据,一边有列一边的数据,没有就用缺省值NaN填充。
索引上的合并
DataFrame的连接键位于索引上;传入left_index=True或right_index=True(或两者)指定。
1 | left1 = DataFrame({'key': ['a', 'b', 'c', 'a', 'b', 'a'], |
对于像这样的东西,了解一下,知道有这么个东西,以后用到能想到,查一下;
现在第一次看没必要看得这么深,也很难懂,看不懂还影响了心情。
轴向连接
1 | arr = np.arange(12).reshape((3, 4)) |
合并重叠数据
NumPy的where函数,实现合并两个有重叠部分数据集;Series的combine_first方法实现同样的功能,且数据对齐。
重塑和轴向旋转
重新排列表格型数据的基础运算,谓之重塑(reshape)或轴向旋转运算(pivot)。
重塑层次化索引
- stack:将列转为行;
- unstack:将行转为列。
数据转换
移除重复数据
1 | data = DataFrame({'k1':['one']*3 + ['two']*4, |
了解到有这么个知识点可以完成那些功能,将来遇到要实现的时候能回忆起来就可以了。
利用函数或映射进行数据转换
Series的map方法可接受一个函数或含有映射关系的自典型对象。
1 | ## 肉类 |
替换值
replace提供了简单灵活的替换方式。
1 | data = Series([1.,-999.,2.,-999.,-1000.,3.]) |
字符串操作
字符串对象方法
1.连接符
join连接列表或元祖
1 | # print piece |
2.子串定位in关键字
1 | # print 'guido' in val |
3.count计算子串出现的次数
1 | val.conut(',') |
正则表达式
re模块函数可分三大类:模式匹配
替换以及拆分。
1 | import re |
pandas中矢量化的字符串函数
清理散乱数据,字符串规整化工作。
data.map,所有字符串和正则表达式方法都能被应用于(传入lambda表达式或其他函数)各个值,但如果存在NA就会报错。通过Series的str属性即可访问这些方法。如str.contains检查是否含”gmail”.
1 | data.str.contains('gmail') |
示例:USDA食品数据库
1 | import json |
- 本文作者: Linking
- 本文链接: https://linking.fun/2017/04/14/《利用Python进行数据分析》读书笔记-7-第七章-数据规整化:清理、转换、合并与重塑/
- 版权声明: 版权所有,转载请注明出处!