【发布时间】:2020-07-10 09:45:14
【问题描述】:
我有一整年的每小时数据存储在作为对象 dtype 的 Pandas 列中。数据是从具有以下结构的 .CSV 文件导入的:
Date/Time,kWh
01/01 01:00:00,1.14168620105289
01/01 02:00:00,0.998495769210657
01/01 03:00:00,0.949679309420898
01/01 04:00:00,0.938080118507197
01/29 20:00:00,1.14161727165962
01/29 21:00:00,1.01263083086978
01/29 22:00:00,0.961652730472469
01/29 23:00:00,0.951211299856564
01/29 24:00:00,0.949390070561629
因此,日期/时间列包括月、日、小时、分钟和秒。我正在尝试 (1) 将该列转换为 DateTime 并 (2) 将年份设置为 2019。
我在转换时遇到了问题,因为出于某种奇怪的原因,而不是正常的 24 小时范围 00:00 到 23:59,对 .CSV 文件进行编码的组选择了从 01 开始的小时: 00 至 24:00。所以当我运行以下命令时:
cons['Date/Time'] = pandas.to_datetime(cons['Date/Time'], format=' %m/%d %H:%M:%S')
我收到以下错误:
ValueError: time data ' 01/01 24:00:00' does not match format ' %m/%d %H:%M:%S' (match)
我正在寻求帮助将列转换为 DateTime 并将数据的年份设置为 2019。任何帮助将不胜感激。
【问题讨论】:
-
澄清一下,是
24:00午夜 (00:00) 并且所有其他时间都不正确(如果是,那么它是哪一天的午夜),或者所有时间都偏移了 1(@ 987654327@ 是午夜)? -
这个答案解释了如何将
24:00转换为00:00--> stackoverflow.com/questions/52688645/… -
所有小时都偏移 1。年份从 1 月 1 日 1:00 开始,最后一个数据点是 12 月 31 日 24:00。