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

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


  
  

一、merge函数参数详解

  

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函数简单实例

  

1 两个数据框

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

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

  
具体数据格式如下:
在这里插入图片描述

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

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

具体数据格式如下:
在这里插入图片描述

  
  

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

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

pd.merge(date1, date2)

在  这里插入图片描述

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

2. how为left

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

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

3. how为right

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

在这里插入图片描述
  
类似left,只是以右侧数据框中的连接键为基准。
  

4. how为outer

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

在这里插入图片描述

取连接键的并集,保留所有信息。
  

5. 以index做为连接键

pd.merge(date1, date2, how= 'inner',left_index=True,right_index=True)

在这里插入图片描述

  
按默认index进行连接,也可以在建立数据框时自己指定index。若两个数据框除连接键外,还有相同列名,默认左侧数据框中的相同列名后加_x,右侧数据框中相同列名后加_y,见上图中的name_x和name_y。

  
  

三、merge函数进阶实例

  

1 两个数据框

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

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

  
具体数据格式如下:
在这里插入图片描述

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

date2 = pd.DataFrame({
    
    'name2':['xie', 'li', 'fan', 'sun'],
                      'age2':[12, 11, 13, 10],
                     'English':[94, 83, 89, 33]})

具体数据格式如下:
在这里插入图片描述
  
  

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

  

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

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

  
得到结果如下:
在这里插入图片描述

  

2.指定两列为连接键
  

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

得到结果如下:
在这里插入图片描述

  

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

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

  
得到结果如下:
在这里插入图片描述
  
按连接键的顺序对数据框进行排序。
  
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

长按(扫一扫)识别上方二维码学习更多Python和建模知识,让你的学习和工作更出彩。

猜你喜欢

转载自blog.csdn.net/qq_32532663/article/details/108500638
今日推荐