我有一个看起来像这样的df:
df.head()
Close
Date
2011-12-31 4.472624
2012-01-01 4.680778
2012-01-02 5.000000
2012-01-03 5.145917
2012-01-04 5.228729
我想根据这种尝试将数据分为两部分:
# Split data
df_train = df['2017':'2020-04'].iloc[:, 0:1].values #an array of Close values
df_test = df['2020-04':].iloc[:, 0:1].values #an array of Close values
...引发:
KeyError:'2017'
年份包含在数据框中。
任何帮助将不胜感激。
答案 0 :(得分:3)
您需要将索引转换为日期时间
df.index=pd.to_datetime(df.index)
答案 1 :(得分:1)
import pandas as pd
df.index = df.index.astype('datetime64[ns]')
df_train = df[(df.index > '2017-01-01') & (df.index < '2020-04-01')]
df_test = df[df.index > '2020-04-01']