pd.merge()函数的使用(Python数据科学手册)

1.merge函数的构成

merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x','_y'), copy=True, indicator=False)
                             

2.merge函数的参数

left:参与合并的左侧的dataframe

right:参与合并的右侧的dataframe

how:连接方式

on:用于连接的列索引的名称,必须存在于左右的两个dataframe中,如果没有指定其他的 且其他的参数也没有指定,则以两个dataframe列名交集作为连接键

left_on:左侧dataframe中用于连接键的列名,这个参数左右列各不同但含义相同时非常有用

right_on:右侧的dataframe中用于连接的列名

left_index:使用左侧dataframe的行索引作为连接键

right_index:使用右侧dataframe的行索引作为连接键

sort:默认为True,将合并的数据进行排序,设置为false可以提高性能

suffixes:字符串值组成的元组,用于指定当左右dataframe存在相同列名时在后面附加的后缀名

3.merge函数的使用

1、数据连接的类型

一对一连接,多对一连接,多对多连接

代码实例

一对一

from cv2 import merge
import pandas as pd

df1 = pd.DataFrame({'employee': ['Bob', 'jake', 'lisa', 'Sue'],
                   'groups': ['Accounting', 'Engineering', 'Engineering', 'HR']})

df2 = pd.DataFrame({'employee': ['lisa', 'Bob', 'jake', 'Sue'],
                    'hire_date': [2004, 2008, 2012, 2014]})
print(df1)
print(df2)

print(pd.merge(df1, df2))

 多对一

from cv2 import merge
import pandas as pd

df1 = pd.DataFrame({'employee': ['Bob', 'jake', 'lisa', 'Sue'],
                   'group': ['Accounting', 'Engineering', 'Engineering', 'HR']})

df2 = pd.DataFrame({'employee': ['lisa', 'Bob', 'jake', 'Sue'],
                    'hire_date': [2004, 2008, 2012, 2014]})
# print(df1)
# print(df2)

df3 = pd.merge(df1, df2)

print(df3)

df4 = pd.DataFrame({'group': ['According', 'Engineering', 'HR'],
                    'supervisor': ['Carly', 'Guido', 'Steve']})

print(df4)

print(pd.merge(df3, df4))

多对多

 

from cv2 import merge
import pandas as pd

df1 = pd.DataFrame({'employee': ['Bob', 'jake', 'lisa', 'Sue'],
                   'group': ['Accounting', 'Engineering', 'Engineering', 'HR']})

df2 = pd.DataFrame({'employee': ['lisa', 'Bob', 'jake', 'Sue'],
                    'hire_date': [2004, 2008, 2012, 2014]})
print(df1)
# print(df2)

df3 = pd.merge(df1, df2)

# print(df3)

df4 = pd.DataFrame({'group': ['According', 'Engineering', 'HR'],
                    'supervisor': ['Carly', 'Guido', 'Steve']})

# print(df4)

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting', 'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux', 'spreadsheets', 'organization']})

print(df5)

print(pd.merge(df1, df5))

2、设置数据合并的键

on参数的用法,最简单的方法就是直接将参数on设置为一个列名字符串或者一个包含列名称的列表,这个参数只能在两个dataframe有共同列名时才可以使用

3、left_on与right_on参数

合并两个列名不同的数据框

会获取很多列,有多余的列用dataframe中的drop函数删除

4、left_index与right_index参数

除了合并列以外,还需要合并列的索引

5、设置数据连接的集合操作规则

内连接:结果中只包含两个输入集合的交集

外连接:返回两个输入的列的并集,所有的缺失值用NaN填充

左连接和右连接:返回的结果分别只包含左列与右列

6、重复列名(suffixes)

输入datafram有重复列名的情况

代码比较简单,就不放代码在这里了

 

物联沃分享整理
物联沃-IOTWORD物联网 » pd.merge()函数的使用(Python数据科学手册)

发表评论