【发布时间】:2015-04-24 20:41:51
【问题描述】:
我有一个巨大的面板数据,超过 10 GB。数据如下所示:
ID Start_time Factor End_time
1001 1611 0.12 1861
1001 1612 -0.01 1862
...
1001 1861 0.57 2111
1001 1862 0.06 2112
...
1002 1200 0.01 1450
1002 1201 0.52 1451
...
1002 1450 -0.21 1700
1002 1451 0.30 1701
...
数据按 ID 和 Start_time 值排序。我想计算从 Start_time 到相应 End_time 的每个 ID 的 Factor 总和。
输出示例:
ID Start_time Factor End_time Cumulative_factor
1001 1611 0.12 1861 0.12+(-0.01)+...+0.57
1001 1612 -0.01 1862 -0.01+...+0.57+0.06
...
1001 1861 0.57 2111 0.57+0.06+...
1001 1862 0.06 2112 0.06+...
...
1002 1200 0.01 1450 0.01+0.52+...+(-0.21)
1002 1201 0.52 1451 0.52+...+(-0.21)+0.30
...
1002 1450 -0.21 1700 -0.21+0.30+...
1002 1451 0.30 1701 0.30+...
...
由于我有超过 1000 万个观察值,有没有一种有效的方法来计算它?
【问题讨论】:
-
你能显示你想要的输出吗?
-
以下文章演示了如何计算一个太大而无法放入内存的 pandas
DataFrame:plot.ly/ipython-notebooks/… -
由于数据已经排序,看起来像
End_time-Start_time == 250,你可以试试滚动窗口总和? -
谢谢@JohnGalt,是的,但这只是数据的一部分,它们中的大多数仍然有不同的窗口。
-
@JulienSpronck,输出示例是我想要的输出,如果您还需要更多内容,请告诉我?
标签: python pandas bigdata dataframe