详解pandas数据合并与重塑(pd.concat篇)


Posted in Python onJuly 09, 2019

1 concat

concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
    keys=None, levels=None, names=None, verify_integrity=False)

参数说明 

  • objs: series,dataframe或者是panel构成的序列lsit 
  • axis: 需要合并链接的轴,0是行,1是列 
  • join:连接的方式 inner,或者outer

其他一些参数不常用,用的时候再补上说明。

1.1 相同字段的表首尾相接

详解pandas数据合并与重塑(pd.concat篇)

# 现将表构成list,然后在作为concat的输入
In [4]: frames = [df1, df2, df3]
 
In [5]: result = pd.concat(frames)

要在相接的时候在加上一个层次的key来识别数据源自于哪张表,可以增加key参数

In [6]: result = pd.concat(frames, keys=['x', 'y', 'z'])

效果如下

详解pandas数据合并与重塑(pd.concat篇)

1.2 横向表拼接(行对齐)

1.2.1 axis

当axis = 1的时候,concat就是行对齐,然后将不同列名称的两张表合并

In [9]: result = pd.concat([df1, df4], axis=1)

详解pandas数据合并与重塑(pd.concat篇)

1.2.2 join

加上join参数的属性,如果为'inner'得到的是两表的交集,如果是outer,得到的是两表的并集。

In [10]: result = pd.concat([df1, df4], axis=1, join='inner')

详解pandas数据合并与重塑(pd.concat篇)

1.2.3 join_axes

如果有join_axes的参数传入,可以指定根据那个轴来对齐数据 

例如根据df1表对齐数据,就会保留指定的df1表的轴,然后将df4的表与之拼接

In [11]: result = pd.concat([df1, df4], axis=1, join_axes=[df1.index])

详解pandas数据合并与重塑(pd.concat篇)

1.3 append

append是series和dataframe的方法,使用它就是默认沿着列进行凭借(axis = 0,列对齐)

In [12]: result = df1.append(df2)

详解pandas数据合并与重塑(pd.concat篇)

1.4 无视index的concat

如果两个表的index都没有实际含义,使用ignore_index参数,置true,合并的两个表就睡根据列字段对齐,然后合并。最后再重新整理一个新的index。 

详解pandas数据合并与重塑(pd.concat篇)

1.5 合并的同时增加区分数据组的键

前面提到的keys参数可以用来给合并后的表增加key来区分不同的表数据来源

1.5.1 可以直接用key参数实现

In [27]: result = pd.concat(frames, keys=['x', 'y', 'z'])

详解pandas数据合并与重塑(pd.concat篇)

1.5.2 传入字典来增加分组键

In [28]: pieces = {'x': df1, 'y': df2, 'z': df3}
In [29]: result = pd.concat(pieces)

详解pandas数据合并与重塑(pd.concat篇)

1.6 在dataframe中加入新的行

append方法可以将 series 和 字典就够的数据作为dataframe的新一行插入。 

详解pandas数据合并与重塑(pd.concat篇)

In [34]: s2 = pd.Series(['X0', 'X1', 'X2', 'X3'], index=['A', 'B', 'C', 'D'])
 
In [35]: result = df1.append(s2, ignore_index=True)

表格列字段不同的表合并

如果遇到两张表的列字段本来就不一样,但又想将两个表合并,其中无效的值用nan来表示。那么可以使用ignore_index来实现。

详解pandas数据合并与重塑(pd.concat篇)

In [36]: dicts = [{'A': 1, 'B': 2, 'C': 3, 'X': 4},
  ....:     {'A': 5, 'B': 6, 'C': 7, 'Y': 8}]
  ....: 
 
In [37]: result = df1.append(dicts, ignore_index=True)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用Neo4j数据库的教程
Apr 16 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Python学习笔记之装饰器
Aug 06 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
python 多线程死锁问题的解决方案
Aug 25 Python
python自定义函数实现最大值的输出方法
Jul 09 #Python
mac系统下Redis安装和使用步骤详解
Jul 09 #Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 #Python
python获取点击的坐标画图形的方法
Jul 09 #Python
Pandas之排序函数sort_values()的实现
Jul 09 #Python
python爬虫之快速对js内容进行破解
Jul 09 #Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 #Python
You might like
PHP 和 COM
2006/10/09 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP 万年历实现代码
2012/10/18 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
js更优雅的兼容
2010/08/12 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
Python实现的微信好友数据分析功能示例
2018/06/21 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python Lambda函数使用总结详解
2019/12/11 Python
学python需要去培训机构吗
2020/07/01 Python
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
社区十八大感言
2014/01/19 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
单位介绍信格式
2015/01/31 职场文书
教师工作决心书
2015/02/04 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
活动总结书怎么写
2015/05/11 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS