pandas marge 两个pa,两个pd都有main_id ,通过main_id内连接,最后生成的数据只有公共的main_id以及其他列不产生_x -y列名,完整代码示例
时间: 2024-09-27 21:03:47 浏览: 29
在Pandas中,如果你想通过主键`main_id`进行内连接,并且合并后的结果只保留公共的`main_id`及其其他列,而不会产生`_x`和`_y`这种表示左连接或右连接的列名,你可以使用`merge`函数的`how='inner'`选项,并设置`suffixes=(None, None)`,这样就不会自动给列添加后缀。以下是完整的代码示例:
```python
import pandas as pd
# 假设你有两个dataframe,df1和df2,都含有'main_id'列
df1 = pd.DataFrame({'main_id': [1, 2, 3], 'column1': ['A', 'B', 'C']})
df2 = pd.DataFrame({'main_id': [2, 3, 4], 'column2': ['D', 'E', 'F']})
# 内连接并保留原有列名
merged_df = pd.merge(df1, df2, on='main_id', how='inner', suffixes=(None, None))
print(merged_df)
```
执行上述代码后,结果将仅包含`main_id`和那些在两边都存在的列。如果`main_id`在两边都是唯一的,则结果就是这两个DataFrame的所有共同行。
阅读全文