大Excel 文件固定条数分组汇总
Python / Excel 15 Minute Timestamps to 1 Hour and Sum Vlues
【原帖】
i have a Dataset with 15 Minute Timestamps and Values
I need it hourly like this (summed values all 4 rows):
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 有更多资源。