簡體   English   中英

如何在python(pandas)中創建數據透視表

[英]How to create a pivot table in python (pandas)

我有一張這樣的桌子:

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:'函數'對象沒有屬性'平均值'”。 我知道map.mean函數中的用法不正確。 您能幫我消除這個問題嗎? 謝謝。

詳細介紹評論,並提供其他幾種類似方法

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM