我有一个数据框:
cat1 cat2 res
0 a d 3
1 a e 2
2 b d 7
3 b f 6
4 c e 4
5 c f 5
如何使用尽可能少的代码获取下面的数据框(即res
和cat1
的每个级别的cat2
的平均值)?
res
cat1 a 1.5
b 6.5
c 4.5
cat2 d 5
e 3
f 5.5
答案 0 :(得分:3)
尝试melt
和groupby
:
df.melt(id_vars='res').groupby(['variable', 'value']).mean()
输出:
res
variable value
cat1 a 2.5
b 6.5
c 4.5
cat2 d 5.0
e 3.0
f 5.5