我的数据在下面的表格中,但我设法将其放入数据框中,但现在我需要转换77 1977,然后用YYYY-MM-DD hh:mm创建一个列并将其用作索引。
我的数据示例:
答案 0 :(得分:0)
您可以使用to_datetime
并在必要时使用drop
这些列:
df = pd.DataFrame({'YY':[77,77,77],
'MM':[1,2,4],
'DD':[1,3,5],
'hh':[1,3,5],
'mm':[5,3,6],
'F':[7,4,3]})
print (df)
DD F MM YY hh mm
0 1 7 1 77 1 5
1 3 4 2 77 3 3
2 5 3 4 77 5 6
df.index= pd.to_datetime(df['YY']*100000000
+df['MM']*1000000
+df['DD']*10000
+df['hh']*100
+df['mm'],format='%y%m%d%H%M')
df.drop(['YY','MM','DD','hh','mm'], axis=1, inplace=True)
print (df)
F
1977-01-01 01:05:00 7
1977-02-03 03:03:00 4
1977-04-05 05:06:00 3
另一个包含rename
列的解决方案,但它仅适用于版本0.18.1
:
df['YY'] = df.YY + 1900
df = df.rename(columns={'YY':'year','MM':'month','DD':'day','hh':'hour','mm':'minute'})
df.index = pd.to_datetime(df[['year', 'month', 'day', 'hour', 'minute']])
print (df)
day F month year hour minute
1977-01-01 01:05:00 1 7 1 1977 1 5
1977-02-03 03:03:00 3 4 2 1977 3 3
1977-04-05 05:06:00 5 3 4 1977 5 6