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