【发布时间】:2020-02-10 09:30:55
【问题描述】:
计算 pandas 数据框中每个唯一行子集的特定列的平均值。在以下示例中,每个子集直到 1 出现在“标志”列中,即 (54+34+78+91+29)/5 = 57.2 和 (81+44+61)/3 = 62.0
目前无法根据特定列条件计算不同大小的滚动子集
>>> import pandas as pd
>>> df = pd.DataFrame({"Indx": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "Units": [54, 34, 78, 91, 29, 81, 44, 61, 73, 19], "Flag": [0, 0, 0, 0, 1, 0, 0, 1, 0, 1]})
>>> df
Indx Units Flag
0 1 54 0
1 2 34 0
2 3 78 0
3 4 91 0
4 5 29 1
5 6 81 0
6 7 44 0
7 8 61 1
8 9 73 0
9 10 19 1
# DESIRED OUTPUT
>>> df
Indx Units Flag avg
0 1 54 0 57.2
1 2 34 0 57.2
2 3 78 0 57.2
3 4 91 0 57.2
4 5 29 1 57.2
5 6 81 0 62.0
6 7 44 0 62.0
7 8 61 1 62.0
8 9 73 0 46.0
9 10 19 0 46.0
【问题讨论】:
标签: pandas dataframe subset mean