详解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实现的二维码生成小软件
Jul 11 Python
Python实现的简单算术游戏实例
May 26 Python
解密Python中的描述符(descriptor)
Jun 03 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Django中多种重定向方法使用详解
Jul 17 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python request操作步骤及代码实例
Apr 13 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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高级OOP技术演示
2009/08/27 PHP
php 无限分类的树类代码
2009/12/03 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python读取xlsx的方法
2018/12/25 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python的debug实用工具 pdb详解
2019/07/12 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
意向书范本
2014/07/29 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
小组口号霸气押韵
2015/12/24 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL