Для получения правильной даты используйте:
import datetime as dt
df['datetime'] = pd.TimedeltaIndex(df['datetime'], unit='d') + dt.datetime(1899, 12, 30)
Который будет производить:
datetime open high low close
0 2017-04-10 09:24:59.904 20.72 20.72 20.72 20.72
1 2017-04-10 09:29:59.712 20.72 20.72 20.67 20.67
2 2017-04-10 09:31:00.192 20.66 20.67 20.62 20.63
3 2017-04-10 09:31:59.808 20.63 20.65 20.59 20.59
4 2017-04-10 09:33:00.288 20.59 20.59 20.52 20.52
EDIT
Чтобы разделить datetime
на date
и time
, используйте:
df['date'] = df['datetime'].dt.date
df['time'] = df['datetime'].dt.ceil('min').dt.time
df
# datetime open high low close date time
#0 2017-04-10 09:24:59.904 20.72 20.72 20.72 20.72 2017-04-10 09:25:00
#1 2017-04-10 09:29:59.712 20.72 20.72 20.67 20.67 2017-04-10 09:30:00
#2 2017-04-10 09:31:00.192 20.66 20.67 20.62 20.63 2017-04-10 09:32:00
#3 2017-04-10 09:31:59.808 20.63 20.65 20.59 20.59 2017-04-10 09:32:00
#4 2017-04-10 09:33:00.288 20.59 20.59 20.52 20.52 2017-04-10 09:34:00