Python чтение в тиковых данных панд
У меня есть некоторые данные, которые выглядят так:
Symbol Timestamp bid ask
0 EUR/USD 20140101 21:55:34.378 1.37622 1.37693
1 EUR/USD 20140101 21:55:40.410 1.37624 1.37698
2 EUR/USD 20140101 21:55:47.210 1.37619 1.37696
3 EUR/USD 20140101 21:55:57.963 1.37616 1.37696
4 EUR/USD 20140101 21:56:03.117 1.37616 1.37694
Я пытаюсь преобразовать его в панду, но застрял на микросекундной части....ниже то, что я есть, что у меня есть до сих пор...
Считывание данных
sec = pd.read_csv('EURUSD.csv',header=None,parse_dates = 1)
sec.columns = ['Symbol', 'Timestamp', 'bid', 'ask']
Получить столбец метки времени для преобразования
sec['Timestamp'] = sec['Timestamp'].apply(lambda x: dt.datetime.strptime(x, '%Y%m%d %H%M%S'))
'%Y%m%d %H%M%S' в приведенной выше команде часть после %S должна быть wad? Должно ли это быть '%Y%m%d %H%M%S%f'? но это, кажется, не работает. Период во времени все портит...есть идеи?
1 ответ:
Просто примените
to_datetime:In [11]: df Out[11]: Symbol Timestamp bid ask 0 EUR/USD 20140101 21:55:34.378 1.37622 1.37693 1 EUR/USD 20140101 21:55:40.410 1.37624 1.37698 2 EUR/USD 20140101 21:55:47.210 1.37619 1.37696 3 EUR/USD 20140101 21:55:57.963 1.37616 1.37696 4 EUR/USD 20140101 21:56:03.117 1.37616 1.37694 In [12]: pd.to_datetime(df.Timestamp) Out[12]: 0 2014-01-01 21:55:34.378000 1 2014-01-01 21:55:40.410000 2 2014-01-01 21:55:47.210000 3 2014-01-01 21:55:57.963000 4 2014-01-01 21:56:03.117000 Name: Timestamp, dtype: datetime64[ns]Если вы должны передать формат, недостающая часть
%f:In [12]: df['Timestamp'].apply(lambda x: dt.datetime.strptime(x, '%Y%m%d %H:%M:%S.%f')) Out[12]: 0 2014-01-01 21:55:34.378000 1 2014-01-01 21:55:40.410000 2 2014-01-01 21:55:47.210000 3 2014-01-01 21:55:57.963000 4 2014-01-01 21:56:03.117000 Name: Timestamp, dtype: datetime64[ns]
Comments