【发布时间】:2016-07-15 11:08:57
【问题描述】:
我用 pd.read_csv 导入了一些时间序列数据,它看起来像这样:
price quantity initiator
time
2016-07-13 16:19:31 6.20 8000 B
2016-07-13 16:19:45 6.19 5176 S
2016-07-13 16:25:08 6.24 15000 NaN
2016-07-13 16:25:08 6.24 2847 S
2016-07-13 16:25:08 6.24 39829 B
2016-07-14 09:25:08 6.35 2398 B
2016-07-14 09:25:08 6.30 1844 NaN
2016-07-14 09:25:08 6.25 9538 S
2016-07-14 09:25:08 6.15 459 B
2016-07-14 09:25:08 6.25 1082 B
然后我使用以下代码在以下条件下累积“数量”列;如果“发起者”= B/S/NaN,则数量为正/负/不计数。
instr['multipl'] = np.where(instr.initiator == 'B', 1, -1) * instr.initiator.notnull()
instr['acc_qnty'] = (instr.quantity * instr.multipl).cumsum()
然后我有一个包含累积数量的新列。但是,我也想每天重新设置/重新开始。新的一天,新的积累。
如何使用 pandas 做到这一点?
【问题讨论】:
标签: python-3.x pandas time-series