对两个dataframe的所有列进行比较,并添加对比结果
时间: 2024-03-08 22:50:58 浏览: 134
对dataframe进行列相加,行相加的实例
5星 · 资源好评率100%
好的,我理解了你的问题。你想对两个DataFrame的所有列进行比较,并添加对比结果。具体来说,你想比较两个DataFrame的每一行,如果某行在两个DataFrame中的所有列上的值都相同,那么就在这一行上添加一个标记,表示这两个DataFrame中的值相同。
我可以提供一个简单的方法来实现这个功能。首先,我们可以使用pandas的equals()方法来比较两个DataFrame是否相同。这个方法会返回一个布尔值,表示两个DataFrame是否相同。接下来,我们可以使用apply()方法来对每一行进行比较。在apply()方法中,我们可以使用equals()方法来比较两个DataFrame的相应行是否相同。如果两个DataFrame的相应行相同,我们就可以在这一行上添加一个标记。最后,我们可以将这个标记添加到原始的DataFrame中,以便进一步处理。
下面是一个示例代码,可以帮助你完成这个任务:
```python
import pandas as pd
# 生成两个DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 7]})
# 定义比较函数
def compare_rows(row1, row2):
if row1.equals(row2):
return 'Same'
else:
return 'Different'
# 对每一行进行比较,并添加标记
df1['Compare'] = df1.apply(lambda x: compare_rows(x, df2.loc[x.name]), axis=1)
# 输出结果
print(df1)
```
运行上述代码后,你就可以得到一个新的DataFrame,其中添加了一个名为“Compare”的列,用于标记两个DataFrame中的对应行是否相同。
阅读全文