pandas merge应用
最近频繁处理表格数据,再次感受到了pandas的伟大。
pandas merge
pandas merge可根据一个键或者多个键将不同的DataFrame中的行连接起来。实现的是类似SQL或者关系型数据库的数据库连接操作。
数据库风格的DataFrame合并
一对多的合并
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
'data1': range(7)})
df1
df2 = pd.DataFrame({'key': ['a', 'b', 'd'],'data2': range(3)})
df2
此时为一种一对多的合并。df1中有多个被标记为a和b的行,而df2中key列的每个值仅对应一行。直接对df1和df2调用merge。
没有指定用哪个列进行连接的话,默认将重叠的列的列名当作键。
pd.merge(df1, df2)
显式指定一下键:
pd.merge(df1, df2, on = 'key')
如果两个对象,列名不同的话,可以分别进行指定:
df3 = pd.DataFrame({'lkey': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],'data1': range(7)})
df3
df4 = pd.DataFrame({'rkey': ['a', 'b', 'd'],'data2': range(3)})
df4
pd.merge(df3, df4, left_on = 'lkey', right_on = 'rkey')
这种情况,去掉了df3中的c,以及df4中的d;因为默认情况下,merge做的是“inner”连接;结果中的键是交集。外连接是并集,组合了左连接和右连接的效果:
pd.merge(df1, df2, how = 'outer')
多对多的合并操作
df1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],'data1': range(6)})
df1
df2 = pd.DataFrame({'key': ['a', 'b', 'a', 'b', 'd'],'data2': range(5)})
df2
pd.merge(df1, df2, on = 'key', how = 'left')
多对多连接产生的是笛卡尔积。左边是3个b行,右边有2个b行,最终结果就会有6个b行。
pd.merge(df1, df2, on = 'key', how = 'inner')
参考
- 《利用python进行数据分析》第七章:数据规整化:清理、转变、合并、重塑
pandas merge应用相关推荐
- Pandas——merge(合并)
文章目录 1.前言 2.通过key合并 3.Indicator 4.根据index合并 5.解决overlapping的问题 1.前言 pandas中的merge和concat类似,但主要是用于两组有 ...
- [Python3]pandas.merge用法详解
摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的 ...
- Python科学计算之Pandas merge函数操作
文章目录 Merge函数 Merge介绍 Merge操作 Merge函数 Merge介绍 pandas中的merge()函数类似于SQL中join的用法,可以将不同数据集依照某些字段(属性)进行合并操 ...
- pandas - merge 函数
# All default pd.merge(left,right,how="inner",on=None,left_on=None,right_on=None,left_inde ...
- 数据分析处理库Pandas——merge操作
有一列列名相同值也相同 有两列列名相同值也相同 按其中一列合并 按两列合并 有一列列名相同值也相同,有一列列名相同值不相同,按两列合并 列名相同值不相同的行删掉 保留所有行 保留所有行并显示合并后该值 ...
- python(numpy,pandas11)——pandas merge根据索引合并数据
文章目录 前言 参数on 参数 index 参数indicator 参数 suffixes 前言 根据 莫烦Python的教程 总结写成,以便自己复习和使用,这里我就不哟林地挂原创了
- 盘点一道使用pandas.merge()和pandas.join()函数实战应用题目
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 寂寂花时闭院门,美人相并立琼轩. ...
- pandas -表的横向合并 纵向合并
<Merge, join, and concatenate>笔记 PS默认情况下,所有合并函数生成文件的方式均是新生成,即不修改原DF/Series数据. 第一.常用的merge()函数. ...
- python能处理多大的数据-使用Python Pandas处理亿级数据
在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章<别老扯什么Hadoop了,你的数据根本不够大>指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择. ...
- 【Python】merge:数据规整化:清理、转换、合并、重塑
merge:数据规整化:清理.转换.合并.重塑 目录: 文章目录 @[toc] 一 合并数据集 1 数据库风格的DataFrame合并 2 索引上的合并 3 轴向连接 4 合并重叠数据 二 重塑和轴向 ...
最新文章
- 洛谷P4705 玩游戏(生成函数+多项式运算)
- Web应用程序中(VS2005+SP1)添加App_Code(转)
- NR 5G RRC连接重建
- socket编程中的异常处理
- boost::hana::default_用法的测试程序
- node作为php中转带参数,Nodejs中使用命令行如何进行传参(代码)
- 计算机视觉目标检测算法总结5——RCNN系列算法
- 五,通道之间的数据传输
- IDEA运行test出现 Failed to execute goal org.codehaus.mojo:exec-maven-plugin:16.0.0:exec (default-cli) on
- 【Vegas原创】Exchange报550 5.7.1 Unable to relay for …错误的分析
- oracle 日期改字符格式_oracle 日期转换格式
- 计算机进入端口模式命令提示符,Win10使用命令提示符删除端口占用方法Win10查看端口占用状态...
- php短信验证码接口免费,[php短信验证码接口]PHP 短信验证码
- java对接微信代金券功能
- Luogu P3369 【模板】普通平衡树
- IE浏览器打开github点击code无响应
- 流氓软件卷土重来 8749上演黑吃黑
- 电子书管理软件Calibre使用
- VB/VBA的变量,竟还有这些秘密
- 在计算机桌面如何切换成大图标,win7系统桌面图标怎么设置大小 win7电脑桌面图标大小更改方法...
热门文章
- c#初学者记录(1)
- synchronized锁机制 之 代码块锁(转)
- 【LOJ】#2532. 「CQOI2018」社交网络
- [JLOI2008] CODES
- Vue音乐项目笔记(三)
- Log4j具体使用实例
- (转)apple-touch-icon-precomposed 和 apple-touch-icon属性区别
- wamp环境下php命令运行时出现错误:无法启动此程序,因为计算机中丢失OCI.dll。尝试重新安装该程序以解决此问题...
- 【转】从简单的 F# 表达式构建并发应用程序
- 【实践】BiLSTM上的CRF,用命名实体识别任务来解释CRF(1)