In [1]: import pandas as pd
df_1 = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
df_2 = pd.DataFrame({"A":["foo", "bar", "foo", "bar"], "B":[1,0,1,0], "C":["A","B","A","B"]})
In [2]: df = pd.concat([df_1, df_2])
In [3]: df
Out[3]:
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
0 foo 1 A
1 bar 0 B
2 foo 1 A
3 bar 0 B
In [4]: df.drop_duplicates(keep=False)
Out[4]:
A B C
0 foo 0 A
2 foo 1 B
3 bar 1 A
4条答案
按热度按时间q5lcpyga1#
您可以使用
pandas.concat
按行连接两个 Dataframe ,然后使用drop_duplicates
删除其中的所有重复行。gev0vcfq2#
您可以使用
index.difference()
函数vqlkdk9b3#
这是最好的方法:
注意,drop duplicated是用来最小化比较的,没有比较也能正常工作。
为什么这是最好的方法?
最好的方法是比较行内容本身,而不是索引或一列或两列,相同的代码也可用于其他过滤器,如“both”和“right_only”,以获得类似的结果。
index.difference
仅适用于基于唯一索引的比较iqxoj9l94#
对于这类问题,请看Pandas的左边连接.