在Tick数据中读取Python
我得到的一些数据如下所示:在Tick数据中读取Python,python,pandas,Python,Pandas,我得到的一些数据如下所示: 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:5
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”
?但这似乎不起作用。这段时间把事情搞得一团糟……有什么想法吗?只要应用:
如果必须传递格式,则缺少的片段是%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]
您可以将格式直接传递到to_datetime,无需应用
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]