2017-08-30 120 views
1

我有這樣的一個表:如何創建蟒蛇(大熊貓)數據透視表

train_df:

Sex Target 
M 1 
M 1 
M 1 
F 0 
F 1 
F 0 

我想創建一個數據透視表,以便它可以顯示結果有些事情是這樣的:

Row Labels Average of Target 
    F    0.333333333 
    M     1 

我已經寫了這樣的代碼:

temp2 = train_df.pivot_table(values='Target', index=['Sex'],aggfunc=lambda x: x.map.mean(). 

我越來越像「AttributeError:」函數'object has no attribute'mean''出錯。我知道map.mean函數中的用法不正確。你能幫我解決這個問題嗎?謝謝。

+3

'train_df.groupby( '性別',as_index = FALSE).Target.mean ()'爲什麼不呢? – Zero

回答

4

在闡述的意見,有幾個類似的方式

In [325]: train_df.groupby('Sex', as_index=False).Target.mean() 
Out[325]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [326]: train_df.groupby('Sex').Target.mean().reset_index() 
Out[326]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [327]: train_df.groupby('Sex', as_index=False).agg({'Target': 'mean'}) 
Out[327]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [328]: train_df.groupby('Sex', as_index=False).agg({'Target': np.mean}) 
Out[328]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [329]: train_df.groupby('Sex', as_index=False).agg('mean') 
Out[329]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

如果你堅持有pivot_table

In [333]: train_df.pivot_table(index='Sex', values='Target', aggfunc='mean').reset_index() 
Out[333]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 
+0

這工作。我會在7分鐘內接受答案。非常感謝您爲其他選項提供的答案。 –