2016-06-13 78 views
1

我很難比較一個熊貓數據框與從該數據框生成的聚合列。具體如果我有大熊貓比較聚集與原始列

df = Col1 Col2 
    a p 
    a q 
    a r 
    b r 
    c s 

我想要一個布爾數據框是真正的,其中每個條目等於該列的模態值。我已經試過

df == df.mode() 

但這給了我Can only compare identically labelled DataFrame objects。我希望可以在第一個數據幀的行中廣播第二個數據幀來計算結果。需要明確的是,在上述情況下,我有

modal_df = df.mode() 
modal_df = Col1 Col2 
      a r 

desired_result = Col1 Col2 
       True False 
       True False 
       True True 
       False True 
       False False 

回答

2

您可以通過values創建numpy array比較df

print (df.mode().values) 
[['a' 'r']] 

print (df == df.mode().values) 
    Col1 Col2 
0 True False 
1 True False 
2 True True 
3 False True 
4 False False