安居多伦多
  • 多市生活
    • 多市生活
    • 加国税务
    • 旅游度假
    • 生活安全
    • 行车安全
    • 窍门集锦
  • 多市书苑
    • 热门
    • 小说
    • 教育
  • 家居信息
    • 家居信息
    • 房屋保养
    • 房屋贷款
    • 房屋租赁
    • 房屋建筑
    • 房前屋后
    • 家居风水
  • 健康保健
    • 健康保健
    • 饮食起居
    • 食品安全
    • 健身锻炼
  • 书苑账户
    • 书苑登入
    • 书苑注册
    • 忘记书苑密码
    • 书苑账户信息
    • 关于我们
    • 联系我们
    • 隐私政策
多伦多书苑
在线书籍:随时阅读,随身听书。
所有书籍 | 人文 | 人物 | 人生 | 健康 | 儿童 | 医学 | 历史 | 历史 | 古典 | 哲学宗教 | 商业 | 外国 | 寓言 | 小说 | 教育 | 风水 | 管理 | 语言 |
为使本公益资源网站能继续提供免费阅读,请勿屏蔽广告。谢谢!报告弹出广告被滥用。
  1. 安居多伦多
  2. 网上书苑
  3. IT
  4. Python
  5. Python机器学习手册:从数据预处理到深度学习

Python机器学习手册:从数据预处理到深度学习

2022-02-15 0人点赞 0条评论
点赞
x
语速1.0: 2.0
进度0:

上一页   |   返回目录   |   下一页

3.19 合并两个数据帧

问题描述

合并两个数据帧。

解决方案

要进行等值连接(inner join),就需要使用merge并用on参数来指定哪些列要合并:

3.19 合并两个数据帧

merge默认进行等值连接。如果要进行外连接(outer join),可以通过how参数来指定:

3.19 合并两个数据帧

使用how参数还可以指定是左连接还是右连接:

3.19 合并两个数据帧

也可以指定每个数据帧中的列名来进行合并:

3.19 合并两个数据帧

如果想根据数据帧的索引合并两列,可以将left_on和right_on参数替换成right_index=True以及left_index=True。

讨论

很多时候我们需要使用的数据是很复杂的,而且它们并不总是完整的。

其实在真实场景中,数据集通常是分散的,它们来自对数据库的多次查询或者多个文件。所以,为了将所有数据放在一起,通常需要先将每一份从数据库查询得到的数据或文件作为数据帧加载到pandas中,然后再将它们合并为一个大的数据帧。

这个过程对于用过SQL(一个常用来做数据合并操作(join)的语言)的人来说可能很熟悉。尽管在pandas中使用的具体参数不一样,但是它所遵循的大致模式与其他语言和工具没有什么区别。

对于任何merge操作,都需要说明三个方面的信息。第一,必须指定想要合并哪两个数据帧。在上述解决方案中,它们是dataframe_employees和dataframe_sales。第二,必须指定要根据哪两列实施合并,也就是说在两个数据帧中需要共享哪一列的值。比如,在上述解决方案中,两个数据帧都有一列叫作employee_id,为了将这两个数据帧合并,只需要找到每个数据帧的employee_id列中能匹配的值,并把它们拼接起来就行。

如果这两列使用相同的名字,可以使用on参数。如果它们的名字不一样,则需要使用left_on和right_on。

左/右数据帧是怎么定义的呢?简单来说,左数据帧是在merge中指定的第一个数据帧,右数据帧就是第二个。在我们解释下一组参数时,还会用到左/右数据帧的概念。

最后一个参数,也是大多数人都很难理解的参数,是指合并操作的类型,由how参数来指定。merge支持如下4个主要的连接类型。

Inner

只返回指定列的值在两个数据帧中都存在的行。例如,只有employee_id的值在dataframe_employees和dataframe_sales中都出现时,才会返回行。

Outer

返回两个数据帧的所有行。如果某一行只在其中一个数据帧中存在,就用NaN来填充缺失的值。例如,返回dataframe_employees和dataframe_sales的所有行。

Left

返回左数据帧的所有行,对于右数据帧,只返回在左数据帧中能找到匹配值的行。用NaN来填充缺失的值。例如,返回dataframe_employees的所有行,但是对于dataframe_sales,只返回它的employee_id出现在dataframe_employees中的那些行。

Right

返回右数据帧的所有行,对于左数据帧,只返回在右数据帧中能找到匹配值的行。用NaN来填充缺失的值。例如,返回dataframe_sales的所有行,但是对于dataframe_employees,只返回它的employee_id出现在dataframe_sales中的那些行。

如果你无法一下子理解上述所有概念,推荐你自己动手写代码调试一下how参数,看一看它是如何影响merge的输出的。

延伸阅读

● 对SQL Join操作的可视化解释(http://bit.ly/2Fxgcpe)

● pandas中关于合并操作的文档(http://bit.ly/2Fuo4rH)

上一页   |   返回目录   |   下一页

类似书籍

机器学习实战
机器学习实战
Python机器学习实践指南
Python机器学习实践指南
Python机器学习——预测分析核心算法
Python机器学习——预测分析核心算法
Author:

标签: 暂无
最后更新:2022-02-15
< 上一篇
下一篇 >

本书评论

取消回复

©2021 安居多伦多 - 版权所有

本站由 好事来 Hostlike.com 提供技术支持。