首页 > 解决方案 > 时间数据与格式“'%H:%M.%S%f'”不匹配

问题描述

我正在尝试预测时间序列数据。
我的 csv 文件中的时间序列数据的格式为 0:00.000 因此,我对时间序列数据列进行了索引,如下所示:

df.columns=['Elapsed','I']
df['Elapsed']=pd.to_datetime(df['Elapsed'], format='%H:%M.%S%f')
df['Elapsed']=df['Elapsed'].dt.time
df.set_index('Elapsed', inplace=True)

然后我把我的数据分成测试部分和训练部分

train = df.loc['0:00.000':'0:28.778']
test = df.loc['0:28.779':] 

我的堆栈跟踪是 我的数据的摘录是:在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

谁能解释如何防止发生此错误?

标签: pythonpandasdatetime

解决方案


由于问题现在已经改变,我会写一个新的答案。

您的数据框由 的实例索引datetime.time,但您试图用字符串对其进行切片 - pandas 不想将字符串与时间进行比较。

为了让你的切片工作,试试这个:

split_from = datetime.datetime.strptime('0:00.000', '%H:%M.%S%f').time()
split_to = datetime.datetime.strptime('0:28.778', '%H:%M.%S%f').time()
train = df[split_from:split_to]

将格式保存在变量中也很有用,因为您现在在多个地方使用它。

或者,如果您有固定的分段时间,您可以改为

split_from = datetime.time(0, 0, 0)
split_to = datetime.time(0, 28, 77.8)
train = df[split_from:split_to]

推荐阅读