目录
merge方法
类似于数据库中的join,默认左右对象同名列为键进行纵向连接,且为内连接。
merge语法
pandas.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)
等同于DataFrame.merge(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可以是DataFrame,也可以是有名称的Series;参数how='inner',默认是内连接,也可以选择'left'/'right'/'outer',即左连接/右连接/全连接;参数on可以指定左右对象同名列,如没有指定且left_index/right_index都为False,则会自动使用左右对象同名列;参数left_on/right_on可以传入左右对象的列名称、行索引名称或与左右对象等长的数组;参数left_index/right_index默认是False,如果指定为True,表示左对象或右对象的行索引为键。其他参数暂略。
参数详解:
pandas.merge — pandas 1.4.2 documentation (pydata.org)
pandas.DataFrame.merge — pandas 1.4.2 documentation (pydata.org)
merge代码
单一键连接
#导入库
import pandas as pd
#构造数据
left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
# on='key'可省略,使用左右对象同名列;默认how='inner'
result = pd.merge(left, right, on='key')
print(result)
多键连接
left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
'key2': ['K0', 'K1', 'K0', 'K1'],
&