У меня есть фрейм данных df
вот так
x
0 8.86
1 1.12
2 0.56
3 5.99
4 3.08
5 4.15
Мне нужно выполнить какую-то операцию groupby
на x
, чтобы агрегировать x
каждый раз, когда его сумма достигает 10. Если индекс df
был объектом datetime
, я мог бы использовать pd.Grouper
, как показано ниже
grouped = df.groupby(pd.Grouper(freq="min")
grouped["x"].sum()
, который будет группировать по индексу datetime, а затем суммировать x
каждую минуту. В моем случае у меня нет цели datetime
, поэтому df.groupby(pd.Grouper(freq=10))
дает ValueError: Invalid frequency: 10
.
Желаемый выходной кадр данных после применения операций groupby()
и sum()
будет выглядеть следующим образом
y
0 10.54
1 13.22
, потому что элементы 0-2 из df
составляют до 10,54, а элементы 3-5 - до 13,22
Как можно сгруппировать x
по его сумме, каждый раз, когда сумма достигает 10?