博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas 基础(9) - 组合方法 merge
阅读量:5890 次
发布时间:2019-06-19

本文共 1528 字,大约阅读时间需要 5 分钟。

首先, 还是以天气为例, 准备如下数据:

df1 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], }) df2 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'humidity': [89, 79, 80], }) df = pd.merge(df1, df2, on='city')

输出:

上面的例子就是以 'city' 为基准对两个 dataframe 进行合并, 但是两组数据都是高度一致, 下面调整一下:

df1 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando', 'baltimore'], 'temperature': [21, 24, 32, 29], }) df2 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'san francisco'], 'humidity': [89, 79, 80], }) df = pd.merge(df1, df2, on='city')

输出:

从输出我们看出, 通过 merge 合并, 会取两个数据的交集.

那么, 我们应该可以设想到, 可以通过调整参数, 来达到不同的取值范围. 

取并集:

df = pd.merge(df1, df2, on='city', how='outer')

输出:

左对齐:

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

输出:

右对齐:

df = pd.merge(df1, df2, on='city', how='right')

另外, 在我们取并集的时候, 我们有时可能会想要知道, 某个数据是来自哪边, 可以通过 indicator 参数来获取:

df = pd.merge(df1, df2, on='city', how='outer', indicator=True)

输出:

在上面的例子中, 被合并的数据的列名是没有冲突的, 所以合并的很顺利, 那么如果两组数据有相同的列名, 又会是什么样呢? 看下面的例子:

df1 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando', 'baltimore'], 'temperature': [21, 24, 32, 29], 'humidity': [89, 79, 80, 69], }) df2 = pd.DataFrame({ 'city': ['newyork', 'chicago', 'san francisco'], 'temperature': [30, 32, 28], 'humidity': [80, 60, 70], }) df = pd.merge(df1, df2, on='city')

输出:

我们发现, 相同的列名被自动加上了 'x', 'y' 作为区分, 为了更直观地观察数据, 我们也可以自定义这个区分的标志:

df3 = pd.merge(df1, df2, on='city', suffixes=['_left', '_right'])

输出:

好了, 以上, 就是关于 merge 合并的相关内容, enjoy~~~

 

转载于:https://www.cnblogs.com/rachelross/p/10428805.html

你可能感兴趣的文章
Python编程-基础知识-条件判断
查看>>
谈谈最近的工作
查看>>
YAML 在Python中的配置应用
查看>>
iOS - Swift Swift 语言新特性
查看>>
SAP S/4HANA 1610新版本有哪些新功能?
查看>>
微信公众平台无高级接口账号获取用户基本信息
查看>>
LINUX C 父进程建立多个子进程循环非堵塞回收列子
查看>>
17.5. pid
查看>>
英国脱欧不过是小事一桩
查看>>
oracle 11.2.0.4 ogg 12.3.0.1.0备库rep进程启动报错OGG-00446
查看>>
如何提高用户对于网站的忠诚度?网站托管公司告诉你!
查看>>
Oracle 自动故障诊断
查看>>
HTML的select控件美化
查看>>
Windows 8.1下 MySQL绿色版安装配置与使用
查看>>
Xamarin生成的APK大小分析
查看>>
T-SQL技术收集——删除重复数据
查看>>
nginx访问控制
查看>>
【百度地图API】让用户选择起点和终点的驾车导航
查看>>
WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]
查看>>
第1章 开发环境安装和配置(一):概述
查看>>