【发布时间】:2021-10-19 04:19:19
【问题描述】:
我有一个如下示例的数据框:
mdata:
id f0 f1 f2 .. fn
d1 dft 3 3 .. 5
d1 swe 7 4 .. 6
d1 rty 5 12 .. 3
d2 www 3 2 .. 5
d2 tot 1 4 .. 6
d2 asa 9 7 .. 9
.. .. .. .. ..
dm .. .. .. ..
我想计算每个唯一 id 的数值列的标准偏差和平均值,并将它们用作新列。所以想要的输出应该是这样的:
output:
id f0 f1 f1_std f1_avg f2 f2_std f2_avg ... fn fn_std fn_avg
d1 dfd 3 2 5 3 4.93 6.3 ... 5 1.52 4.6
d1 swe 7 2 5 4 4.93 6.3 ... 6 1.52 4.6
d1 rty 5 2 5 12 4.93 6.3 ... 3 1.52 4.6
d2 www 3 4.16 4.3 2 2.51 4.3 ... 5 2.08 6.6
d2 tot 1 4.16 4.3 4 2.51 4.3 ... 6 2.08 6.6
d2 asa 9 4.16 4.3 7 2.51 4.3 ... 9 2.08 6.6
.. .. .. .. .. .. .. ... .. ..
dm .. .. .. .. .. .. ... .. ..
我正在尝试这段代码:
mdata['f1_std']=mdata.groupby('id')['f0'].transform(lambda x: x.std(skipna=True, ddof=1))
但它只适用于一个功能。
【问题讨论】:
标签: python list dataframe statistics