【发布时间】:2020-03-12 05:12:03
【问题描述】:
我有一个包含id、event 和metric 列的数据集:
df = pd.DataFrame([['a','x', 1],
['a','x',2],
['b','y',3],
['a','z',4],
['a','j',5]], columns = ['id','event','metric'])
id event metric
0 a x 1
1 a x 2
2 b y 3
3 a z 4
4 a j 5
我需要将它按 id 和 event 分组以得到 sum、mean、std、min、max metric 的聚合,这不仅包括 a给定“id-event”组,但对于给定的id,所有以前的事件的metric 值。换句话说,我需要聚合所有行,直到给定行。
期望的输出:
id event sum mean std min max
0 a j 12 3.000000 1.825742 1 5
1 a x 3 1.500000 0.707107 1 2
2 a z 7 2.333333 1.527525 1 4
3 b y 3 3.000000 NaN 3 3
当我刚刚为每个组过滤我的数据框时,我尝试了 for-loop 方法。但问题是我有大约 20M 行,所以计算需要很长时间。我正在尝试解决这个无循环。
【问题讨论】:
标签: python pandas aggregation