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有重复列名的情况
代码比较简单,就不放代码在这里了文章来源:https://www.toymoban.com/news/detail-460652.html
文章来源地址https://www.toymoban.com/news/detail-460652.html
到了这里,关于pd.merge()函数的使用(Python数据科学手册)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!