merge函数_数据分析常用函数—pd.merge

本文详细介绍了Python数据分析库pandas中的merge函数,包括参数详解、简单实例和进阶用法。通过实例展示了如何按不同方式拼接数据框,如left、right连接方式,并解释了连接键和how参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据分析是现在的热门,学会用python处理数据,让你从繁琐的工作中解脱出来。 本文详细阐述数据分析常用函数之merge函数。

本文目录

  1. merge函数参数详解

  2. merge函数简单实例

    2.1 两个数据框

    2.2 按不同方式拼接两个数据框

  3. merge函数进阶实例

    3.1 两个数据框

    3.2 按不同方式拼接两个数据(

一、merge函数参数详解

bf49b0cb7d96118ae555821ec433fb2c.png pd.merge函数是把两个数据框按某种方式拼接起来,如果觉得单看语法比较枯燥,可以先看第二部分实例。
pd.merge(left, right, how= 'inner', on=None, left_on=None,           right_on=None, left_index = False, right_index = False,           sort = False, suffixes=('_x', '_y'), copy = True,           indicator = False, validate=None)

参数详解:

left:待拼接的左侧数据框。

right:待拼接的右侧数据框。

how:左右两个数据框的连接方式。可选‘left’、‘right’、‘outer’、‘inner’,默认为inner。 on:左右两个待拼接数据框有共同列名,且按该列拼接两个数据框时使用该参数。 left_on:拼接两个数据框时,左数据框对应连接关键字(可为列表)。 right_on:拼接两个数据框时,右数据框对应连接关键字(可为列表)。 left_index:若为True,则按左数据框的索引连接两个数据框。 right_index:若为True,则按右数据框的索引连接两个数据框。 sort:按字典顺序通过连接键对结果数据框进行排序。 suffixes:为左右数据框中重复列名定义后缀。默认加('x','y')。

二、merge函数简单实例

bf49b0cb7d96118ae555821ec433fb2c.png  1  两个数据框

1.第一个数据框中存放了四位同学的数学成绩

import pandas as pddate1 = pd.DataFrame({'name':['xie', 'li', 'wang', 'chen'],                     'Math':[88, 90, 54, 70]})

具体数据格式如下:

6cf0ae091f4f3b9552bd158792a25d21.png

2.第二个数据框中存放了四位同学的英语成绩

date2 = pd.DataFrame({'name':['xie', 'li', 'fan', 'sun'],                     'English':[94, 83, 89, 33]})

具体数据格式如下:

5792ba81a5513538068a22952fa45f30.png

 2  按不同方式拼接两个数据框

1. 以默认的方式连接两个数据框

pd.merge(date1, date2)
882abb91756e77ec2356a2a5d977e51a.png

没有指定连接键时,默认采取两个数据框中的都有的列做为连接键。且连接方式how默认为inne(保留两个数据框中都有信息的列)。

2. how为left

pd.merge(date1, date2, how = 'left')

393f9a95580e14caf6677af16d80365f.png

以左数据框中的连接键为基准,匹配右数据框中的信息,并连接。如果没有指定连接关键字,默认相同名字的那一列作为匹配键。

3. how为right

pd.merge(date1, date2, how = 'right')

cb559dc102c51efec293863a3c0fafb5.png

类似left,只是以右侧数据框中的连接键为基准。 4 .  how为outer
pd.merge(date1, date2, how = 'outer')

5ae25dd77cc47dcabe82fbf8c443645c.png

取连接键的并集,保留所有信息。 5. 以index做为连接键
pd.merge(date1, date2, how= 'inner',left_index=True,right_index=True)

acfcb4194b76f7fcbf6cb70ec94da36b.png

按默认index进行连接,也可以在建立数据框时自己指定index。

若两个数据框除连接键外,还有相同列名,默认左侧数据框中的相同列名后加_x,右侧数据框中相同列名后加_y,见上图中的name_x和name_y。

三、merge函数进阶实例

bf49b0cb7d96118ae555821ec433fb2c.png  1  两个数据框

1.第一个数据框中存放了四位同学的姓名、年龄和成绩。

import pandas as pddate1 = pd.DataFrame({'name1':['xie', 'li', 'wang', 'chen'],                      'age1':[12, 11, 11, 13],                      'music':[95,66,98,78],                     'Math':[88, 90, 54, 70]})

具体数据格式如下:

eba8a32aa932a7288cddef995612a384.png

2. 第二个数据框中存放了四位同学的姓名、年龄和成绩。
date2 = pd.DataFrame({'name2':['xie', 'li', 'fan', 'sun'],                      'age2':[12, 11, 13, 10],                     'English':[94, 83, 89, 33]})
具体数据格式如下:

4dac376a4a30a9219580c26ce15add7f.png

 2  按不同方式拼接两个数据框

由于两个数据框中没有相同列名,所以不指定连接关键字时会报错。

1.以左连接的方式连接两个数据框

pd.merge(date1, date2, how = 'left', left_on = 'name1', right_on = 'name2')

得到结果如下:

6ace2b7a1d90977a344e59ae8c4fcc5a.png

2.指定两列为连接键

pd.merge(date1, date2, how = 'left', left_on = ['name1', 'age1'], right_on = ['name2', 'age2'])

得到结果如下:

f6d05d1e3a13151a964b0c1e806762fb.png

3.用sort对连接键值进行排序

pd.merge(date1, date2, how = 'left', left_on = ['name1', 'age1'], right_on = ['name2', 'age2'], sort = True)
得到结果如下:

5b2b481f94ed746949fce2c91c9faa84.png

按连接键的顺序对数据框进行排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值