Python 以累积和为条件将数据拆分为批

Python 以累积和为条件将数据拆分为批,python,pandas,dataframe,Python,Pandas,Dataframe,我试图根据start\u date和end\u date对一些数据进行批处理,这是累积和的条件,这里有一种方法: 从io导入字符串io作为sio d=sio(“”) 索引日期数 0 2021-01-01 200000 1 2021-01-02 240000 2 2021-01-03 55000 3 2021-01-04 400000 4 2021-01-05 80000 5 2

我试图根据
start\u date
end\u date
对一些数据进行批处理,这是累积和的条件,这里有一种方法:

从io导入字符串io作为sio
d=sio(“”)
索引日期数
0      2021-01-01       200000
1      2021-01-02       240000
2      2021-01-03       55000
3      2021-01-04       400000
4      2021-01-05       80000
5      2021-01-06       100000
""")
作为pd进口熊猫
df=pd.read_csv(d,sep='\s+')
批次数量=5*10**5
df['batch\u num']=df['num\u books'].cumsum()//batch\u num
结果=df.groupby('batch_num').agg(开始日期=('date','min'),结束日期=('date','max'),累计账簿=('num_books','sum'))
打印(结果)
#开始日期结束日期总和账簿
#批次号
#0          2021-01-01  2021-01-03        495000
#1          2021-01-04  2021-01-05        480000
#2          2021-01-06  2021-01-06        100000

请注意,
结果
数据帧还包含超过
500_000
的条目,但是删除/过滤它是很简单的。

For循环是一种方法。这肯定比我使用For循环和if语句的解决方案要好得多。非常感谢。不客气!
index  Date            num_books
0      2021-01-01       200000
1      2021-01-02       240000
2      2021-01-03       55000
3      2021-01-04       400000
4      2021-01-05       80000
5      2021-01-06       100000
start_date  end_date   cumsum_books
2021-01-01  2021-01-03  495000
2021-01-04  2021-01-05  480000
2021-01-06  2021-01-06  100000