我有一张这样的表:
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().
我的错误是"属性错误:'功能'对象没有属性'表示'"。我知道map.mean函数中的用法不正确。你能帮我解决一下这个问题吗?谢谢。
答案 0 :(得分: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