我有 2 个数据框,它们显示的数据(面积、区域等)相似,我对一个特定变量感兴趣,Area
变量。
对于 2 个数据帧,即 a
和 b
,我已经使用 a.Area.unique()
和 b.Area.unique()
检查了每个区域有哪些区域,并且还通过以下方式检查了每个区域的数量使用 nunique()
。
但是,它们没有相同数量的变量,我需要确定从任一数据框中缺少/增加了哪些区域。如何相互检查 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