比较来自不同数据帧的唯一值

时间:2021-03-19 14:10:12

标签: python pandas dataframe

我有 2 个数据框,它们显示的数据(面积、区域等)相似,我对一个特定变量感兴趣,Area 变量。

对于 2 个数据帧,即 ab ,我已经使用 a.Area.unique()b.Area.unique() 检查了每个区域有哪些区域,并且还通过以下方式检查了每个区域的数量使用 nunique()

但是,它们没有相同数量的变量,我需要确定从任一数据框中缺少/增加了哪些区域。如何相互检查 2 个数据帧以识别差异?

我希望这是有道理的,在此先感谢您!

2 个答案:

答案 0 :(得分:0)

如果您可以使用一些示例数据更新您的问题,我们可以提供更好的帮助,但一种可能的答案是使用 merge 方法:

new_df = pd.merge(a, b, on='Area', how='outer')

此 new_df 为您提供基于两个数据帧之间的 Area 列的数据帧联合。

另一种解决方案可能是:

a.loc[~a['Area'].isin(b['Area']), 'Area']

这会为您提供 a 中不在 b['Area'] series 中的区域。

答案 1 :(得分:0)

您可以将其转换为 set 并使用 set 操作进行检查

a_set=set(a.Area.unique())
b_set=set(b.Area.unique())

list(a_set-b_set) # list of areas in a but not in b
list(b_set-a_set) # list of areas in b but not in a
list(b_set&a_set) # list of areas in both a and b >> intersection
list(b_set|a_set) # list of all areas >> union