merge pandas 用法
时间: 2023-07-29 11:12:26 浏览: 91
`merge` 是 pandas 中用于合并两个 DataFrame 的方法。其基本语法为:
```python
merged_df = pd.merge(left_df, right_df, on=None, how='inner', left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
```
其中,参数说明如下:
- `left_df` 和 `right_df`:要合并的两个 DataFrame;
- `on`:指定用于合并的列名,如果未指定,则会自动寻找两个 DataFrame 中的相同列名进行合并;
- `how`:指定合并方式,有 `inner`、`outer`、`left`、`right` 四种方式,默认为 `inner`;
- `left_on` 和 `right_on`:指定左右两个 DataFrame 中用于合并的列;
- `left_index` 和 `right_index`:是否使用 DataFrame 的索引进行合并,默认为 `False`;
- `sort`:是否按照列名进行排序,默认为 `True`;
- `suffixes`:指定当两个 DataFrame 中存在列名冲突时,自动添加的后缀;
- `copy`:是否复制 DataFrame,建议设为 `True`;
- `indicator`:是否在合并后的 DataFrame 中添加 `_merge` 列,标明每行数据的来源,默认为 `False`;
- `validate`:是否验证合并方式的有效性,默认为 `None`。
下面是一个简单的示例:
```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]
})
merged_df = pd.merge(df1, df2, on='key', how='outer')
print(merged_df)
```
运行结果如下:
```
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
```
在这个例子中,我们使用 `on` 参数指定了用于合并的列名,使用 `how` 参数指定了合并方式为 `outer`,即保留两个 DataFrame 中的所有数据。最后得到了一个新的 DataFrame,并将其打印输出。
阅读全文