数据合并(pd.merge)
- 根据单个或多个键将不同DataFrame的行连接起来
- 类似数据库的连接操作
- pd.merge:(left, right, how=‘inner’,on=None,left_on=None,
right_on=None ) left:合并时左边的DataFrame right:合并时右边的DataFrame
how:合并的方式,默认’inner’, ‘outer’, ‘left’, ‘right’ on:需要合并的列名,必须两边都有的列名,并以
left 和 right 中的列名的交集作为连接键 left_on: left Dataframe中用作连接键的列 right_on:
right Dataframe中用作连接键的列 - 内连接 inner:对两张表都有的键的交集进行联合
- 全连接 outer:对两者表的都有的键的并集进行联合
- 左连接 left:对所有左表的键进行联合
- 右连接 right:对所有右表的键进行联合
示例代码:
import pandas as pd
import numpy as np
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']})
pd.merge(left,right,on='key') #指定连接键key
运行结果:
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
3 K3 A3 B3 C3 D3
示例代码:
left = pd.DataFrame({
'key1': ['K0', 'K0', 'K1', 'K2'],
'key2': ['K0', 'K1', 'K0', 'K1'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({
'key1': ['K0', 'K1', 'K1', 'K2'],
'key2': ['K0', 'K0', 'K0', 'K0'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
pd.merge(left,right,on=