我正在尝试使用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()
实现它。但我失败了。任何想法如何做到这一点?
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