【发布时间】:2020-11-06 05:49:21
【问题描述】:
我有一个由电动汽车充电会话组成的 DataFrame,其方案和内容如下:
PlugInTime, PlugOutTime, DeliveredEnergy, ChargeDuration
- 2019-01-02 05:53:00, 2019-01-02 14:38:00, 36.0, 05:57:00
- 2019-01-02 07:53:00, 2019-01-02 16:38:00, 8.0, 03:12:00
- ...
我想根据 ChargeDuration 列拆分各个行,以便例如将第一行“分解”为:
- 2019-01-02 05:53:00, 2019-01-02 14:38:00, 6.05, 05:57:00
- 2019-01-02 06:53:00, 2019-01-02 14:38:00, 6.05, 05:57:00
- 2019-01-02 07:53:00, 2019-01-02 14:38:00, 6.05, 05:57:00
- 2019-01-02 08:53:00, 2019-01-02 14:38:00, 6.05, 05:57:00
- 2019-01-02 09:53:00, 2019-01-02 14:38:00, 6.05, 05:57:00
- 2019-01-02 10:53:00, 2019-01-02 14:38:00, 5.75, 05:57:00
如您所见,我希望 ChargeDuration 确定 PlugInTime 被拆分成多少块,并且我希望 DeliveredEnergy 通过线性插值相应地拆分,以便总和等于原始值。
之后,我想每小时对 DataFrame 重新采样一次,以便确定所有记录的充电会话的每小时能源需求。
在这篇文章之前的研究中,我遇到了许多关于在 pandas 中重新采样的线程,但他们缺少基于另一列(此处为 ChargeDuration)的拆分步骤。
非常感谢任何帮助。
【问题讨论】:
-
我认为您应该在第一行的预期输出中获得更多行,对吧?
-
是的,我希望将原来的第一行替换为我描述的 6 个新行。当然,我也希望所有剩余的行都这样。
-
不,我是说第一行应该只有 7 个吧?你只提到了 6 个?
-
哦,现在我明白你的意思了。是的,我的错。我会纠正它。 :)
-
现在我想一想:这是 5 小时 57 分钟,因此总共开始了第 6 小时(但未完成),因此应该是 6 个间隔,在其中观察相应的能量负载(前 5 个间隔为 6.05,其余为开始的第 6 小时)。或者我错过了什么。 :)
标签: python pandas dataframe datetime