我有以下 Dataframe :| 乡村|硬币|| - ------|- ------|| 美国|硬币1|| 美国|硬币2|| 墨西哥|硬币3|每枚硬币都是独一无二的,它可以改变国家。例如:| 乡村|硬币|| - ------|- ------|| 美国|硬币1|| 墨西哥|硬币2|| 墨西哥|硬币3|我试图找到的是一种方法来查看哪些行发生了变化。我想要的输出:| 乡村|硬币|| - ------|- ------|| 墨西哥|硬币2|
7gs2gvoe1#
您可以使用concat将它们合并,然后使用drop_duplicates获得差值。例如:concat([df1,df2]).drop_duplicates(keep=False)
concat
drop_duplicates
concat([df1,df2]).drop_duplicates(keep=False)
为了只获得一行,您可以通过将list应用于两个 Dataframe 并使用.isin查找共性来获得两个 Dataframe 之间所有共性的否定。df1[~df1.apply(list,1).isin(df2.apply(list,1))]
list
.isin
df1[~df1.apply(list,1).isin(df2.apply(list,1))]
1条答案
按热度按时间7gs2gvoe1#
您可以使用
concat
将它们合并,然后使用drop_duplicates
获得差值。例如:concat([df1,df2]).drop_duplicates(keep=False)
为了只获得一行,您可以通过将
list
应用于两个 Dataframe 并使用.isin
查找共性来获得两个 Dataframe 之间所有共性的否定。df1[~df1.apply(list,1).isin(df2.apply(list,1))]