【发布时间】:2016-03-04 16:22:39
【问题描述】:
year x y
1987 1.609438 0
1988 1.386294 0
1989 1.098612 1
1987 0.693147 0
1988 0.000000 0
1989 -0.693147 1
...
所以,我可以得到 x 的平均值
>>> df.groupby(['year'])['x','y'].mean()
x y
year meanX meanY
1987 0.597434 0.000000
1988 0.428441 0.351852
1989 0.155169 0.185185
如何添加将每一行与年份相关联的新列?我的意思是我想要这样的东西:
year x y meanX meanY
1987 1.609438 0 0.597434 0.000000
1988 1.386294 0 0.428441 0.351852
1989 1.098612 1 0.155169 0.185185
1987 0.693147 0 0.597434 0.000000
1988 0.000000 0 0.428441 0.351852
1989 -0.693147 1 0.155169 0.185185
这样做的正确方法是什么?
【问题讨论】:
-
我不明白你是如何得到 'meanY' 的输出,但你是在
In [196]: df df[['meanx','meany']] = df.groupby('year')[['x','y']].transform('mean') df Out[196]: year x y meanx meany 0 1987 1.609438 0 1.151293 0 1 1988 1.386294 0 0.693147 0 2 1989 1.098612 1 0.202733 1 3 1987 0.693147 0 1.151293 0 4 1988 0.000000 0 0.693147 0 5 1989 -0.693147 1 0.202733 1之后吗? -
我的意思是我只展示了数据库的一部分。注意“...”。这是你的问题吗?对不起!谢谢!