博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas学习笔记—merge()函数详解
阅读量:4155 次
发布时间:2019-05-25

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

目录

1、merge()中的常用参数

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,         left_index=False, right_index=False, sort=True,         suffixes=('_x', '_y'))
  • left: 拼接的左侧DataFrame对象
  • right: 拼接的右侧DataFrame对象
  • on: 指定两个dataframe按某一列进行连接,该列必须同时出现在两个dataframe中。
    如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。
  • left_on:左侧DataFrame中用作连接键的列。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
  • right_on: 右侧DataFrame中用作连接键的列。可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
  • left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键的列。
    对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。
  • right_index: 与left_index功能相似。
  • how: ‘left’, ‘right’, ‘outer’或‘inner’之一。
    默认inner。inner是取两个dataframe的连接键列中元素的交集,outer取其并集,如果其中一个dataframe中的连接键列中不含有某元素,则该元素对应的这行数据中的其它列用NAN填充。
  • sort: 按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。
  • suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。也可手动指定:suffixes=(“df1”,“df2”)

2、举例

列几个例子细细品味:

import pandas as pddataDf1=pd.DataFrame({
'列1_left':['a','b','b','c'], '列2_left':[1,2,2,3]})dataDf2=pd.DataFrame({
'列1_right':['b','c','c','d'], '列2_right':[2,3,3,4]})print(dataDf1)print(dataDf2)

输出:

在这里插入图片描述

dataLfDf=pd.merge(dataDf1,dataDf2, left_on='列1_left',right_on='列1_right') #默认how='inner'dataLfDf

在这里插入图片描述

dataLfDf=pd.merge(dataDf1,dataDf2, how='outer',left_on='列1_left',right_on='列1_right') dataLfDf

在这里插入图片描述

dataLfDf=pd.merge(dataDf1,dataDf2, how='right',left_on='列1_left',right_on='列1_right') dataLfDf

在这里插入图片描述

import pandas as pddataDf1=pd.DataFrame({
'key':['a','b','b','c'], '列2_left':[1,2,2,3]})dataDf2=pd.DataFrame({
'key':['b','c','c','d'], '列2_right':[2,3,3,4]})print(dataDf1)print(dataDf2)

在这里插入图片描述

dataLfDf=pd.merge(dataDf1,dataDf2, how='outer',on='key') dataLfDf

在这里插入图片描述

dataLfDf=pd.merge(dataDf1,dataDf2, how='left',on='key') dataLfDf

在这里插入图片描述

转载地址:http://uvrti.baihongyu.com/

你可能感兴趣的文章
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
《达芬奇的人生密码》观后感
查看>>
基于“分形”编写的交互应用
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>