我有一张这样的桌子:
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
关于python - 如何在python(pandas)中创建数据透视表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45968048/