用pandas做两列数据对比,并输出其中差异的地方
时间: 2024-03-07 11:50:42 浏览: 169
Pandas实现一列数据分隔为两列
可以使用Pandas的`merge()`函数将两个DataFrame按照某些列进行合并,然后使用布尔索引对比两个DataFrame的差异。下面是一个示例代码:
```
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['A', 'B', 'C', 'E'], 'value2': [1, 2, 5, 6]})
# 使用merge()函数合并两个DataFrame
df = pd.merge(df1, df2, on='key', how='outer')
# 使用布尔索引找出差异的地方
diff = df[df['value1'] != df['value2']]
print(diff)
```
在上面的代码中,首先创建了两个DataFrame对象`df1`和`df2`,然后使用`merge()`函数将这两个DataFrame按照'key'列进行合并,合并方式为outer join。这样就可以将两个DataFrame的数据对齐,如果某个key在其中一个DataFrame中不存在,则用NaN填充。
然后,使用布尔索引找出'value1'和'value2'列不相等的地方,即为两个DataFrame中的差异。在上面的例子中,输出的结果为:
```
key value1 value2
2 C 3.0 5.0
3 D 4.0 NaN
4 E NaN 6.0
```
其中,'C'行的'value1'和'value2'不相等,'D'行在df1中存在,在df2中不存在,'E'行在df2中存在,在df1中不存在。
阅读全文