我经常迭代存储在 csv 文件中的金融价格数据。当我完成与时间相关的所有分析时,就像使用 pandas 日期时间对象来子集和组织数据的可访问性一样。
我的问题是,当我将文件读入计算机内存时,会打扰parse_dates
提供的参数顶部pandas.read_csv()
和pandas.to_datetime()
非常耗费时间。
有谁知道在 python 中处理时间戳的更好方法,可以优化它以运行许多需要加载到内存中的文件?
%timeit pd.read_csv("C:\\Users\\rgalbo\\Desktop\\Equity\\Data\\sp - working data\\30min--Adj\\AAPL_24.csv",index_col=[0])
10 loops, best of 3: 112 ms per loop
与 parse_date = True
%timeit pd.read_csv("C:\\Users\\rgalbo\\Desktop\\Equity\\Data\\sp - working data\\30min--Adj\\AAPL_24.csv",index_col=[0],parse_dates=True)
1 loops, best of 3: 7.5 s per loop
在测试了加载和解析包含 13,811,418 行、98 个唯一日期值的 csv 文件的几个选项后,我们得到了下面的代码片段,并发现如果我们通过format
具有预定义日期格式的参数(在我们的例子中为“%m/%d/%Y”)我们可以达到2.52 s
与 Pandas.0.15.3。
def to_date(dates, lookup=False, **args):
if lookup:
return dates.map({v: pd.to_datetime(v, **args) for v in dates.unique()})
return pd.to_datetime(dates, **args)
- 还可以使用 coerce=True (或在更高版本中粗略='raise')来启用日期格式验证,否则错误值将保留为字符串值,并且当执行任何其他日期时间操作时将导致错误在数据框列上执行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)