groupby连续值熊猫的加权平均值(将连续的公共值保留在列中)

时间:2020-10-27 17:27:00

标签: pandas mean

我有一个看起来像这样的数据框:

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列计算平均值的月份值,而不是像出现在此数据框中的平均值那样。而且我还希望通过权重列对平均值进行加权。

0 个答案:

没有答案