[英]How to change time format in a csv file from DD:MM:YY HH:MM to YYYY-MM-DD HH:MM:SS. or YYYY/MM/DD HH:MM:SS
[英]How to split time data (in format of yyyy-mm-dd hh:mm:ss) to test and train sets?
我有一個時間序列數據,其時間格式為“ yyyy-mm-dd hh:mm:ss
”。 我想將行分為訓練和測試集。 但是我嘗試執行此操作的所有方法都失敗了。
如何將以下數據拆分為測試集和訓練集:
DATE-TIME TEMP PRE
2018-08-4 15:18:49 209.3851 4045.4414
2018-08-4 15:18:50 209.3851 4045.4314
2018-08-4 15:18:51 209.3581 4045.4268
2018-08-4 15:18:52 209.3553 4045.4343
2018-08-4 15:18:53 209.3553 4045.4307
...
下面的代碼不起作用:
...
split_date = pd.Timestamp('2018-08-4 15:18:52')
train = data.loc[:split_date]
test = data.loc[split_date:]
...
我認為您的時間戳是經過排序的,因此您可以使用
split_date = pd.Timestamp('2018-08-4 15:18:52')
train = df[df['DATE-TIME'] < split_date]
test = df[df['DATE-TIME'] > split_date]
結果:
培養:
DATE-TIME TEMP PRE
0 2018-08-04 15:18:49 209.3851 4045.4414
1 2018-08-04 15:18:50 209.3851 4045.4314
2 2018-08-04 15:18:51 209.3581 4045.4268
測試:
DATE-TIME TEMP PRE
4 2018-08-04 15:18:53 209.3553 4045.4307
也許您必須先將columntype轉換為datetime格式:
df['DATE-TIME'] = pd.to_datetime(df['DATE-TIME'])
如果您的時間戳記是索引而不是數據幀的列,只需將df['DATE-TIME']
替換為df.index
df.index = pd.to_datetime(df.index)
split_date = pd.Timestamp('2018-08-4 15:18:52')
train = df[df.index < split_date]
test = df[df.index > split_date]
或者,您可以查看sklearn
TimeSeriesSplit 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.