汇总到当前行,熊猫中没有循环

我有一个包含ideventmetric列的数据集:

df = pd.DataFrame([['a','x',1],['a',2],['b','y',3],'z',4],'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

我需要按idevent对其进行分组,以获得summeanstdmin,{{1} } max的聚合,不仅包括给定“ id-event”组的值,而且还包括给定{{1}的所有先前事件的值metric }。换句话说,我需要所有行直到给定行的聚合。

所需的输出:

metric

当我只是为每个组过滤数据框时,我尝试了for循环方法。但是问题是我大约有2000万行,所以花了很多时间才能计算出来。我正在尝试解决此问题无循环

opqissmart 回答:汇总到当前行,熊猫中没有循环

您需要使用groupby

df.groupby(["id","event"])["metric"].describe()
,

您需要在sort_values上使用id的{​​{1}}并在选项quicksort上进行排序,但要在其他列上保持原始顺序。接下来,id上的groupbyid上的expanding。最后,sum,mean,std,min,maxpd.concat列添加到最终df中。 event仅保留每个组drop_duplicates的最后一行,而id-event保留您想要的顺序。

sort_values
本文链接:https://www.f2er.com/3091547.html

大家都在问