使用 pandas,我喜欢使用 groupby 和聚合函数(例如平均值),然后将结果放回原始数据框中下一个组而不是当前组。如何以向量化的方式实现?
我有一个如下所示的 pandas 数据框:
我尝试了这个,但是没有切换到下一组。
我有一个如下所示的 pandas 数据框:
data = {'Group': ['A','A','B','B','B','B', 'C','C', 'D','D'],
'Value': [1.1,1.3,9.1,9.2,9.5,9.4,6.2,6.4,2.2,2.3]
}
df = pd.DataFrame(data, columns = ['Group','Value'])
print (df)
Group Value
0 A 1.1
1 A 1.3
2 B 9.1
3 B 9.2
4 B 9.5
5 B 9.4
6 C 6.2
7 C 6.4
8 D 2.2
9 D 2.3
我希望能够得到这样的结果,即每个组都包含前一组的平均值。
Group Value
0 A NaN
1 A NaN
2 B 1.2
3 B 1.2
4 B 1.2
5 B 1.2
6 C 9.3
7 C 9.3
8 D 6.3
9 D 6.3
我尝试了这个,但是没有切换到下一组。
df.groupby('Group')['Value'].transform('mean')
.set_index
和.reset_index
使我的答案变慢了。 - Ch3steR