比较pandas数据帧并检查重叠?

时间:2017-08-24 15:24:16

标签: python-3.x pandas compare

我正在尝试使用spame过滤器。我尝试了几种方法将文本文件标记为垃圾邮件。结果,我有三个数据帧。他们基本上看起来像这样:

df_method_1 = pd.DataFrame({'file': ['A','B' ,'C'], 'spam': ['1', '0', '0']})
df_method_2 = pd.DataFrame({'file': ['A','B' ,'C'], 'spam': ['1', '1', '0']})
df_method_3 = pd.DataFrame({'file': ['A','B' ,'C'], 'spam': ['1', '1', '0']})

我现在正在尝试创建一个数据框,显示一个文件是否被标记为垃圾邮件,如果是这样,则使用哪种方法。

在最好的情况下,我可以创建一个包含以下信息的数据框:

df_summary = pd.DataFrame({'file': ['A','B' ,'C'], 'spam': ['All methods', 'Method 2 & Method 3', 'No method']})

显然,我正在寻找这些信息。不需要实际的字符串。

我尝试pandas.DataFrame.isin()来实现它。但我失败了。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

merge()怎么样?

df1.merge(df2, on="file").merge(df3, on="file")
  file spam_x spam_y spam
0    A      1      1    1
1    B      0      1    1
2    C      0      0    0