表1和表2进行右连接后,存在2个value列,我想用pandas合并2个value列为1个,有没有好的办法
时间: 2024-05-05 15:21:30 浏览: 50
可以使用DataFrame.rename()方法来给value列重命名,然后使用DataFrame.apply()方法结合一个lambda函数来合并两个value列,例如:
```python
import pandas as pd
# 创建两个示例数据表
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})
# 使用pandas.merge()方法进行右连接
merged_df = pd.merge(df1, df2, on='key', how='right')
# 使用DataFrame.rename()方法重命名value列
merged_df = merged_df.rename(columns={'value_x': 'value1', 'value_y': 'value2'})
# 使用DataFrame.apply()方法结合lambda函数合并value1和value2列
merged_df['value'] = merged_df.apply(lambda row: row['value1'] if not pd.isnull(row['value1']) else row['value2'], axis=1)
merged_df = merged_df.drop(['value1', 'value2'], axis=1)
print(merged_df)
```
运行结果:
```
key value
0 A 1.0
1 B 2.0
2 C 3.0
3 D 6.0
```
阅读全文