繁体   English   中英

Tick Data Pandas中的Python阅读

[英]Python Reading in Tick Data 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: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之后的部分应该被填充吗? 应该是'%Y%m%d %H%M%S%f'吗? 但这似乎不起作用。 时间段把事情弄糟了...有什么想法吗?

只需申请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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM