Pandas 合并多个Dataframe(merge,concat)的方法


Posted in Python onJune 08, 2018

在数据处理的时候,尤其在搞大数据竞赛的时候经常会遇到一个问题就是,多个表单的合并问题,比如一个表单有user_id和age这两个字段,另一个表单有user_id和sex这两个字段,要把这两个表合并成只有user_id、age、sex三个字段的表怎么办的,普通的拼接是做不到的,因为user_id每一行之间不是对应的,像拼积木似的横向拼接肯定是不行的。

pandas中有个merge函数可以做到这个实用的功能,merge这个词会点SQL语言的应该都不陌生。

下面说说merge函数怎么用:

df = pd.merge(df1, df2, how='left', on='user_id')

用法很简单,说一下后两个参数就可以了,how=""参数表示以哪个表的key为准,上面的how="left"表示以表df1为准,而key也就是on=""的参数

how="left"就是说,保留user_id字段的全部信息,不增加也不减少,但是拼接的时候只把df2表中的与df1中user_id字段交集的部分合并上就可以了,如果df2中出现了某个user_id在df1中没有出现,就抛弃掉这个样本不作处理。

如果要进行多key合并:

df = pd.merge(df1, df2, how='left', on=['user_id','sku_id'])

但是如果想仅进行简单的“拼接”而不是合并呢,要使用concat函数:

df = pd.concat( [df_user, dummies_sex, dummies_age, dummies_level], axis=1 )

这样可以保留这些表单的全部信息,参数axis=1表示列拼接,axis=0表示行拼接。

要保证背个表单的行数是相同的,并且每一行对应的key也是相同的,列拼接才变得有意义

以上这篇Pandas 合并多个Dataframe(merge,concat)的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
Python语言描述连续子数组的最大和
Jan 04 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
详解Django 时间与时区设置问题
Jul 23 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
pycharm导入源码的具体步骤
Aug 04 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
pytorch 实现在测试的时候启用dropout
May 27 Python
使用pandas对两个dataframe进行join的实例
Jun 08 #Python
pandas带有重复索引操作方法
Jun 08 #Python
使用python爬取B站千万级数据
Jun 08 #Python
pandas表连接 索引上的合并方法
Jun 08 #Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 #Python
python实现人人自动回复、抢沙发功能
Jun 08 #Python
利用Python写一个爬妹子的爬虫
Jun 08 #Python
You might like
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
JS target与currentTarget区别说明
2011/08/28 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
JS中的多态实例详解
2017/10/15 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
python实现定时播放mp3
2015/03/29 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
在python中使用nohup命令说明
2020/04/16 Python
香港交友网站:be2香港
2018/07/22 全球购物
金融专业毕业生自荐信
2014/06/26 职场文书
社团活动总结报告
2014/06/27 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
党员承诺书格式范文
2015/04/28 职场文书
答辩状格式范本
2015/05/22 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL
Python采集股票数据并制作可视化柱状图
2022/04/04 Python