pd.merge用法
时间: 2023-07-20 17:06:04 浏览: 93
pd.merge()是pandas库中的函数,用于将两个数据集按照指定的条件合并成一个新的数据集。
语法如下:
```python
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`:要合并的左侧DataFrame;
- `right`:要合并的右侧DataFrame;
- `how`:合并方式,默认为'inner',可选参数包括'left'、'right'、'outer';
- `on`:用于连接的列名,必须在两个DataFrame对象中都存在。如果未指定,则默认使用两个DataFrame中所有同名列作为连接键;
- `left_on`:左侧DataFrame中用作连接键的列;
- `right_on`:右侧DataFrame中用作连接键的列;
- `left_index`:将左侧DataFrame中的行索引用作其连接键;
- `right_index`:将右侧DataFrame中的行索引用作其连接键;
- `sort`:根据连接键对合并后的数据进行排序,默认为False;
- `suffixes`:字符串值元组,用于追加到重叠列名,以区分它们来自于哪个DataFrame。默认为('_x', '_y');
- `copy`:如果为True,则始终将数据复制到新的DataFrame中。如果为False,则可能返回视图或副本。默认为True;
- `indicator`:添加一个名为_merge的列,其中包含连接键的值的来源('left_only','right_only'或'both');
- `validate`:确认合并类型的有效性。可选参数包括'one_to_one'、'one_to_many'、'many_to_one'、'many_to_many'。
示例:
```python
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
# 将df1和df2按照key列进行inner join
result_inner = pd.merge(df1, df2, on='key', how='inner')
print("inner join:")
print(result_inner)
# 将df1和df2按照key列进行left join
result_left = pd.merge(df1, df2, on='key', how='left')
print("left join:")
print(result_left)
# 将df1和df2按照key列进行right join
result_right = pd.merge(df1, df2, on='key', how='right')
print("right join:")
print(result_right)
# 将df1和df2按照key列进行outer join
result_outer = pd.merge(df1, df2, on='key', how='outer')
print("outer join:")
print(result_outer)
```
输出结果:
```
inner join:
key value_x value_y
0 B 2 5
1 D 4 6
left join:
key value_x value_y
0 A 1 NaN
1 B 2 5.0
2 C 3 NaN
3 D 4 6.0
right join:
key value_x value_y
0 B 2.0 5
1 D 4.0 6
2 E NaN 7
3 F NaN 8
outer join:
key value_x value_y
0 A 1.0 NaN
1 B 2.0 5.0
2 C 3.0 NaN
3 D 4.0 6.0
4 E NaN 7.0
5 F NaN 8.0
```
阅读全文