python - 时间数据与格式“'%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':]
谁能解释如何防止发生此错误?
解决方案
由于问题现在已经改变,我会写一个新的答案。
您的数据框由 的实例索引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]
推荐阅读
- c# - 显示第一张图片并异步加载其他图片
- python - 分组数据框的滚动平均值
- regex - 正则表达式匹配,直到找到带有或不带有引号的冒号
- python - 遍历 2 个列表并构建相对字典的有效方法
- material-ui - 一个具有多种主题样式的组件(Material-UI v5)
- php - 使用 Laravel Passport 和 Tenancy for Laravel 的问题
- java - 一旦我修改 Java 代码,应用程序就会在 android studio 模拟器中崩溃
- c# - 如何在我的数据库中进行全文搜索
- python - 在 Python 中保存 CSV 时提供动态文件名
- java - 在使用 java 和 selenium 执行期间获得以下类型的异常