Таким образом, вы можете создать столбец времени и добавить к индексу set_index
или преобразовать time
s в timedeltas
на to_timedelta
:
import pandas as pd
temp=u"""Date,Time,Open,High,Low,Close
2016-12-14,08:01,227.80,227.91,227.76,227.77
2016-12-14,08:02,227.78,227.78,227.77,227.77
2016-12-14,08:03,227.77,227.77,227.77,227.77
2016-12-14,08:04,227.76,227.76,227.76,227.76"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp),
index_col=[0],
parse_dates=[0],
usecols=['Date','Time','Open','High','Low','Close'])
print (df)
Time Open High Low Close
Date
2016-12-14 08:01 227.80 227.91 227.76 227.77
2016-12-14 08:02 227.78 227.78 227.77 227.77
2016-12-14 08:03 227.77 227.77 227.77 227.77
2016-12-14 08:04 227.76 227.76 227.76 227.76
df['Time'] = pd.to_datetime(df['Time']).dt.time
df = df.set_index('Time', append=True)
print (df)
Open High Low Close
Date Time
2016-12-14 08:01:00 227.80 227.91 227.76 227.77
08:02:00 227.78 227.78 227.77 227.77
08:03:00 227.77 227.77 227.77 227.77
08:04:00 227.76 227.76 227.76 227.76
print (df.index.get_level_values(1))
Index([08:01:00, 08:02:00, 08:03:00, 08:04:00], dtype='object', name='Time')
print (type(df.index.get_level_values(1)[0]))
<class 'datetime.time'>
df['Time'] = pd.to_timedelta(df['Time'] + ':00')
df = df.set_index('Time', append=True)
print (df)
Open High Low Close
Date Time
2016-12-14 08:01:00 227.80 227.91 227.76 227.77
08:02:00 227.78 227.78 227.77 227.77
08:03:00 227.77 227.77 227.77 227.77
08:04:00 227.76 227.76 227.76 227.76
print (df.index.get_level_values(1))
TimedeltaIndex(['08:01:00', '08:02:00', '08:03:00', '08:04:00'],
dtype='timedelta64[ns]', name='Time', freq=None)