大Excel 文件固定条数分组汇总

Python / Excel 15 Minute Timestamps to 1 Hour and Sum Vlues

URLhttps://stackoverflow.com/questions/64167990/python-excel-15-minute-timestamps-to-1-hour-and-sum-vlues

【原帖】

i have a Dataset with 15 Minute Timestamps and Values

imagepng

I need it hourly like this (summed values all 4 rows):

imagepng

How to do this?

My Dataset has 127000 rows…3 Years, so manually is not an option.

Thanks for your help

【回答】

这个问题的特殊性在于,要按固定条数分组汇总,而不是按列中相等的值分组。

Excel不直接支持这种分组汇总,只能用offset index之类的函数组合起来,但这些函数看上去和固定条数没什么关系,理解起来要绕不少弯路。

题主想用Python解决,要注意源Excel较大,存放结果的Excel也不小,内存可能放不下,最好循环处理,即每次循环只读入4N行,而不是全部数据,对这4N行分组汇总,汇总结果追加到结果Excel,再读入下一个4N行。但Python没有直接的外存计算机制,手工写这代码很繁琐。

esProc SPL也能操作Excel,而且擅长各种特殊的分组。另外,SPL有游标机制,代码简单得多。具体到这个问题,可以这样写:


A

B

C

1

=file("D:\data.xlsx").xlsimport@c()


2

for A1,4*1000

=A2.group@i(#%4==1).new(~(4)._1,~.sum(_2))

/每次处理4000

3


=file("D:\new.xlsx").xlsexport@a(B2)

/追加到文件

SPL很擅长处理xls/csv上的运算,这里:http://www.raqsoft.com/p/script-over-csv-xls 有更多资源。