【发布时间】:2019-05-29 08:51:21
【问题描述】:
我正在尝试将我的数据从每日频率上采样到每小时频率并转发填充缺失的数据。
我从以下代码开始:
df1 = pd.read_csv("DATA.csv")
df1.head(5)
然后我使用以下内容转换为日期时间字符串并将日期/时间设置为索引:
df1['DT'] = pd.to_datetime(df1['DT']).dt.strftime('%Y-%m-%d %H:%M:%S')
df1.set_index('DT')
我尝试按如下方式每小时重新采样:
df1['DT'] = df1.resample('H').ffill()
但我收到以下错误:
TypeError:仅适用于 DatetimeIndex、TimedeltaIndex 或 PeriodIndex,但得到了一个'RangeIndex'的实例
我认为我的 dtype 已经是上面 pd.to_datetime 代码所指示的日期时间。我尝试的任何方法似乎都不起作用。谁能帮帮我?
我的预期输出如下:
DT VALUE
2016-08-01 00:00:00 0.000000
2016-08-01 01:00:00 0.000000
2016-08-01 02:00:00 0.000000
等等
文件本身大约有 1000 行。前 50 行左右为零,以便澄清实际数据的位置:
DT VALUE
2018-12-13 00:00:00 24000.000000
2018-12-13 01:00:00 24000.000000
2018-12-13 02:00:00 24000.000000
...
2018-12-13 23:00:00 24000.000000
2018-12-14 00:00:00 26000.000000
2018-12-14 01:00:00 26000.000000
等等
【问题讨论】:
-
提及您的预期输出。
-
@AbdurRehman 感谢您的评论,我已经更新了原版。
-
在数据上提及
column_names以使其更清晰。您的实际数据的年份为2018,而您的预期数据的年份为2016。输入正确还是错误? -
感谢 Abdur,我已经更新了列名。大约有 3 年的数据,前面大部分都是零。我已经在问题中澄清了。