我有一个包含3列的数据帧df
:A
是对象ID,B
是标志,C
是在对象{{1 }},标志为A
。
我想计算B
分组的C
的平均值,并将结果存储为三个新列:
[A,B]
:表示C0
时的均值C
(或NaN
)
B = 0
:表示C1
时的均值C
(或NaN
)
B = 1
:表示C2
时的均值C
(或NaN
)
下面有一个示例,说明了我如何将数据帧B = 2
转换为df
。
res
答案 0 :(得分:2)
res = df.groupby(["A","B"])['C'].mean().unstack().add_prefix('C').reset_index()
或将pivot_table
与默认的mean
聚合函数一起使用:
res = df.pivot_table(index="A",columns="B",values='C').add_prefix('C').reset_index()
print (res)
B A C0 C1 C2
0 0 3.377 0.2225 1.45
1 1 NaN NaN 1.77
2 2 9.234 NaN 2.54
3 3 1.000 6.6040 NaN