2017-08-24 50 views
2

我正在嘗試自己在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']}) 

我現在正在努力創造一個數據幀的表現,如果一個文件被標有垃圾郵件,如果是用哪一種方法。

在最好的情況下,我可以創建一個包含以下infortmation一個數據幀:

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

很顯然,我正在尋找的信息。不需要實際的字符串。

我試過pandas.DataFrame.isin()來實現它。但我失敗了。任何想法如何做到這一點?

回答

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