我有一个看起来像这样的数据框:
dfsample = pd.DataFrame({'A': [7, 2, 3, 4, 4, 7, 5, 4, 6, 3, 5, 9],
'B': [6, 6, 7, 4, 10, 7, 4, 9, 9, 5, 2, 3],
'Weight': [10, 14, 4, 2, 15, 12, 12, 13, 7, 4, 17, 4],
'Month': [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1]})
dfsample
A B Weight Month
0 7 6 10 1
1 2 6 14 1
2 3 7 4 1
3 4 4 2 2
4 4 10 15 2
5 7 7 12 2
6 5 4 12 3
7 4 9 13 3
8 6 9 7 3
9 3 5 4 1
10 5 2 17 1
11 9 3 4 1
我想对Month列进行分组并计算A和B列的加权平均值,但是在最终数据框中,我得到了类似的东西:
dfsample2 = dfsample.groupby((dfsample['Month'].shift() != dfsample['Month']).cumsum()).mean()
dfsample2
A B Month
Month
1 4.000000 6.333333 1.0
2 5.000000 7.000000 2.0
3 5.000000 7.333333 3.0
4 5.666667 3.333333 1.0
但是我想要的是像因子一样的月份值,正在为其他2列计算平均值的月份值,而不是像出现在此数据框中的平均值那样。而且我还希望通过权重列对平均值进行加权。