我有两个数据框 df1 和 df2,其中 df2 是 df1 的子集。如何获得一个新的数据框(df3),这是两个数据框之间的区别?
换句话说,一个数据框包含 df1 中所有不在 df2 中的行/列?
原文由 userPyGeo 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于行,试试这个,其中 Name
是联合索引列(可以是多个公共列的列表,或者指定 left_on
和 right_on
):
m = df1.merge(df2, on='Name', how='outer', suffixes=['', '_'], indicator=True)
The indicator=True
setting is useful as it adds a column called _merge
, with all changes between df1
and df2
, categorized into 3 possible kinds :“left_only”、“right_only”或“both”。
对于列,试试这个:
set(df1.columns).symmetric_difference(df2.columns)
原文由 jpp 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.3k 阅读✓ 已解决
2 回答850 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答839 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答893 阅读✓ 已解决
通过使用
drop_duplicates
Update :
它会像下面这样输出,这是错误的
方法1:使用
isin
和tuple
方法二:
merge
与indicator