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