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 16 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
python实现redis三种cas事务操作
Dec 19 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
Django实现celery定时任务过程解析
Apr 21 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
Python绘制地图神器folium的新人入门指南
May 23 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
js数字转换为float,取N位小数
2014/02/08 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python 异常处理实例详解
2014/03/12 Python
python代码制作configure文件示例
2014/07/28 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
J2EE相关知识面试题
2013/08/26 面试题
大学学雷锋活动总结
2014/06/26 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
springcloud整合seata
2022/05/20 Java/Android