gpt4 book ai didi

python pandas read_csv 如何加快处理时间戳

转载 作者:行者123 更新时间:2023-11-28 22:43:16 25 4
gpt4 key购买 nike

(pandas 0.16.1, Python 2.7.8 Anaconda 2.1.0 (64-bit), Intel Xeon 3.07GHz, Win7 64bit)

我有一个报价数据的 csv 表。每天大约 40 万行。

sym         time                    bid     ask     bsize asize
XCME@6EM4 2014.05.07T08:10:02.407 1.3927 1.3928 28 29
XCME@6EM4 2014.05.07T08:10:02.430 1.3927 1.3928 27 29

用 pandas 将其读入 Python

pd.read_csv("quotes.csv", parse_dates = {'idx':[1]}, index_col = 'idx')

大约需要 40 秒。

知道这是否可以更快吗?人们建议使用 Cython 解决方案 in this post ,但我想知道是否存在 Python/pandas 解决方案?

顺便说一句,下面这个不解析日期,一个错误?

pd.read_csv("quotes.csv", parse_dates = [1])

最佳答案

这里有一个更好的选择

将你的 2 行设为 400k,在不解析为日期的情况下读取它们

In [34]: %timeit read_csv(StringIO(data + data2*200000),sep='\s+')
1 loops, best of 3: 328 ms per loop

In [35]: df = read_csv(StringIO(data + data2*200000),sep='\s+')

解析日期,您需要指定格式,因为这不是 ISO 8601 格式,因此在 python 空间中解析

In [36]: %timeit pd.to_datetime(x.time,format='%Y.%m.%dT%H:%M:%S.%f')
1 loops, best of 3: 2.43 s per loop

In [37]: df.time = pd.to_datetime(df.time,format='%Y.%m.%dT%H:%M:%S.%f')

In [38]: df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 400000 entries, 0 to 399999
Data columns (total 6 columns):
sym 400000 non-null object
time 400000 non-null datetime64[ns]
bid 400000 non-null float64
ask 400000 non-null float64
bsize 400000 non-null int64
asize 400000 non-null int64
dtypes: datetime64[ns](1), float64(2), int64(2), object(1)
memory usage: 21.4+ MB

关于python pandas read_csv 如何加快处理时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com