将两个dataframe的两个列进行比较,并新增加一个列保存结果,结果相同的标记为1,不同的标记为0
时间: 2024-03-08 22:50:53 浏览: 121
对比两列数据
好的,可以使用 Pandas 库来实现这个功能。假设我们要比较的两个 DataFrame 分别为 df1 和 df2,要比较的两列分别为 col1 和 col2,那么可以按照以下步骤进行操作:
1. 首先将两个 DataFrame 按照 col1 列进行合并,使用 merge 函数实现:
``` python
merged_df = pd.merge(df1, df2, on='col1')
```
2. 然后比较 col2_x 和 col2_y 两列是否相同,生成一个新列 result,使用 apply 函数和 lambda 表达式实现:
``` python
merged_df['result'] = merged_df.apply(lambda row: 1 if row['col2_x'] == row['col2_y'] else 0, axis=1)
```
3. 最后可以将结果保存到新的 DataFrame 中,只保留需要的列:
``` python
new_df = merged_df[['col1', 'result']]
```
完整代码如下所示:
``` python
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]})
df2 = pd.DataFrame({'col1': ['a', 'c', 'd'], 'col2': [1, 4, 5]})
# 将两个 DataFrame 按照 col1 列进行合并
merged_df = pd.merge(df1, df2, on='col1')
# 比较 col2_x 和 col2_y 两列是否相同,生成一个新列 result
merged_df['result'] = merged_df.apply(lambda row: 1 if row['col2_x'] == row['col2_y'] else 0, axis=1)
# 将结果保存到新的 DataFrame 中,只保留需要的列
new_df = merged_df[['col1', 'result']]
print(new_df)
```
输出结果为:
```
col1 result
0 a 1
1 c 0
```
阅读全文