【发布时间】:2022-06-19 13:18:40
【问题描述】:
我有两个不同的数据框。 df1=
index Time
0 2009-09-13 01:17:00
1 20009-09-13 02:17:00
2 2009-09-13 03:17:00
3 2009-09-13 04:17:00
4 2009-09-13 05:17:00
............ 这是一个时间序列数据,每小时间隔总共 10 天。 和 df2=
Selling Time Buying Time sell buy
0 2009-09-13 01:17:00 2009-09-13 04:35:00 1 -1
1 2009-09-13 04:20:00 2009-09-13 04:45:00 27 -3
2 2009-09-14 02:25:00 2009-09-15 01:17:00 1 -2
3 2009-09-15 05:33:00 2009-09-16 01:35:00 100 -5
.......
此处,特定商品的买卖列以美元为单位。该物品的买卖时间不同。
我想通过“df2”迭代“df1”每小时时间数据,并计算我在每个特定小时拥有的当前货币价值(将前一小时价值相加)。例如,在 2009-09-13 01:17:00,我卖出了 1 美元,当时什么都没买。因此,我想创建一个新数据集,其中 2009-09-13 01:00:00 的值为 1。因此,对于 2009 年的日期,02:00:00 和 03:00:00 将保持 1 -09-13.
04 小时内我卖出了 27 美元,而前一小时我卖出了 1 美元。但买了 (-1-3)= -4USD。因此,对于 2009-09-13 04:00:00,新值将是 (27+1)-4= 24USD 等等。
输出应如下所示:
index Time Present Value
0 2009-09-13 01:00:00 1
1 20009-09-13 02:00:00 1
2 2009-09-13 03:00:00 1
3 2009-09-13 04:00:00 24
……以此类推,直到df1的最后一个日期和时间。
请注意,数据集“df1”的所有“卖出”和“买入”值应在同一小时内相加。
我可以理解 for 循环的计算,但很难用 datetime 构建一个 for 循环。
【问题讨论】:
标签: python pandas datetime for-loop