PANDAS 数据合并与重塑(concat join/merge)
来源:互联网 发布:mac mini 安装win7 编辑:程序博客网 时间:2024/05/02 17:23
1 concat
concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合
- 1
- 2
- 1
- 2
- 1
- 2
参数说明
objs: series,dataframe或者是panel构成的序列lsit
axis: 需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer
其他一些参数不常用,用的时候再补上说明。
1.1 相同字段的表首尾相接
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
要在相接的时候在加上一个层次的key来识别数据源自于哪张表,可以增加key参数
- 1
- 1
- 1
效果如下
1.2 横向表拼接(行对齐)
1.2.1 axis
当axis = 1的时候,concat就是行对齐,然后将不同列名称的两张表合并
- 1
- 1
- 1
1.2.2 join
加上join参数的属性,如果为’inner’得到的是两表的交集,如果是outer,得到的是两表的并集。
- 1
- 1
- 1
1.2.3 join_axes
如果有join_axes的参数传入,可以指定根据那个轴来对齐数据
例如根据df1表对齐数据,就会保留指定的df1表的轴,然后将df4的表与之拼接
- 1
- 1
- 1
1.3 append
append是series和dataframe的方法,使用它就是默认沿着列进行凭借(axis = 0,列对齐)
- 1
- 1
- 1
1.4 无视index的concat
如果两个表的index都没有实际含义,使用ignore_index参数,置true,合并的两个表就睡根据列字段对齐,然后合并。最后再重新整理一个新的index。
1.5 合并的同时增加区分数据组的键
前面提到的keys参数可以用来给合并后的表增加key来区分不同的表数据来源
1.5.1 可以直接用key参数实现
- 1
- 1
- 1
1.5.2 传入字典来增加分组键
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
1.6 在dataframe中加入新的行
append方法可以将 series 和 字典就够的数据作为dataframe的新一行插入。
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
表格列字段不同的表合并
如果遇到两张表的列字段本来就不一样,但又想将两个表合并,其中无效的值用nan来表示。那么可以使用ignore_index来实现。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
没有指定how的话默认使用inner方法。
how的方法有:
left
只保留左表的所有数据
- 1
- 1
- 1
right
只保留右表的所有数据
- 1
- 1
- 1
outer
保留两个表的所有信息
- 1
- 1
- 1
inner
只保留两个表中公共部分的信息
- 1
- 1
- 1
1.2 indicator
v0.17.0 版本的pandas开始还支持一个indicator的参数,如果置True的时候,输出结果会增加一列 ’ _merge’。_merge列可以取三个值
- left_only 只在左表中
- right_only 只在右表中
- both 两个表中都有
1.3 join方法
dataframe内置的join方法是一种快速合并的方法。它默认以index作为对齐的列。
1.3.1 how 参数
join中的how参数和merge中的how参数一样,用来指定表合并保留数据的规则。
具体可见前面的 how 说明。
1.3.2 on 参数
在实际应用中如果右表的索引值正是左表的某一列的值,这时可以通过将 右表的索引 和 左表的列 对齐合并这样灵活的方式进行合并。
ex 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
1.3.3 suffix后缀参数
如果和表合并的过程中遇到有一列两个表都同名,但是值不同,合并的时候又都想保留下来,就可以用suffixes给每个表的重复列名增加后缀。
- 1
- 2
- 1
- 2
- 1
- 2
* 另外还有lsuffix 和 rsuffix分别指定左表的后缀和右表的后缀。
1.4 组合多个dataframe
一次组合多个dataframe的时候可以传入元素为dataframe的列表或者tuple。一次join多个,一次解决多次烦恼~
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
1.5 更新表的nan值
1.5.1 combine_first
如果一个表的nan值,在另一个表相同位置(相同索引和相同列)可以找到,则可以通过combine_first来更新数据
1.5.2 update
如果要用一张表中的数据来更新另一张表的数据则可以用update来实现
1.5.3 combine_first 和 update 的区别
使用combine_first会只更新左表的nan值。而update则会更新左表的所有能在右表中找到的值(两表位置相对应)。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
下一章,我们将继续介绍pandas中其他进行数据合并和重塑的方法模块——join & merging
- PANDAS 数据合并与重塑(concat join/merge)
- PANDAS 数据合并与重塑(join/merge篇)
- PANDAS 数据合并与重塑(join/merge篇)
- PANDAS 数据合并与重塑(join/merge篇)
- PANDAS 数据合并与重塑(join/merge篇)
- pandas数据合并与重塑---join、merge方法
- pandas数据合并与重塑---concat方法
- PANDAS 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- pandas 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- PANDAS 数据合并与重塑(concat篇)
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- 【GCC英文手册翻译】预处理器的系统特定预定义宏(The C preprocessor:System-specific Predefined Macros)
- Android--网络图片浏览器
- 修改火狐浏览器新建标签页地址
- nvme创建config文件系统
- LZMA压缩/解压缩工具命令行用法参考
- PANDAS 数据合并与重塑(concat join/merge)
- 优化算法——牛顿法(Newton Method)
- 网络知识汇总
- 蓝桥杯之机器人繁殖
- 第三次数据结构上机
- 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- B
- 【python2.7】raw_input()和input()区别及用法
- java调用r语言 实现聚类分析结果返回