pd.merge多条件合并并集,但列名称不一致的合并为同一列
时间: 2023-05-17 13:03:10 浏览: 110
可以使用参数left_on和right_on指定左右两个DataFrame中用于合并的列名,然后使用参数suffixes指定在列名冲突时添加的后缀,最后使用参数how指定合并方式为outer即可。具体代码如下:
pd.merge(df1, df2, left_on=['key1', 'key2'], right_on=['key3', 'key4'], suffixes=('_left', '_right'), how='outer')
相关问题
pd.merge多条件合并并集,但列名称不一致
可以使用参数 left_on 和 right_on 来指定左右两个 DataFrame 中用于合并的列名,例如:
```python
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value2': [5, 6, 7, 8]})
merged = pd.merge(df1, df2, left_on='key', right_on='key', how='outer')
```
这里使用了参数 how='outer' 来指定合并方式为并集,left_on 和 right_on 分别指定了左右两个 DataFrame 中用于合并的列名。
pd.merge多条件合并并集,但列名称不一致的合并为同一列然后修改名称,给出代码演示
可以使用以下代码实现:
```python
import pandas as pd
# 创建两个数据框
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key2': ['A', 'B', 'C', 'D'], 'value2': [5, 6, 7, 8]})
# 合并数据框
df_merge = pd.merge(df1, df2, left_on='key', right_on='key2')
# 修改列名
df_merge.rename(columns={'value1': 'value'}, inplace=True)
# 删除不需要的列
df_merge.drop(['key2'], axis=1, inplace=True)
print(df_merge)
```
输出结果如下:
```
key value value2
0 A 1 5
1 B 2 6
2 C 3 7
3 D 4 8
```