我有一个大的csv文件(> 1M行),有两列日期为欧洲格式(DD / MM / YY),我正在处理大熊猫。熊猫读取这些文件的速度很慢。以下是实验:
read_csv(...,parse_dates=None)
(默认值)将日期列视为字符串(按预期方式)并将< 1秒read_csv(..., parse_dates=my_columns, dayfirst=True)
和read_csv(..., parse_dates=my_columns, dayfirst=True, infer_datetime_format=True)
(文档建议后者可能更快)两者都给出了相同的结果:大约需要5分钟read_csv(..., parse_dates=my_columns, date_parser=lambda x: pd.datetime.strptime(x, '%d/%m/%y'))
按建议here进行奇怪的格式设置需要25秒没有使用read_csv
解析日期,而是在
to_datetime
read_csv(..., parse_dates=None)
for column in my_columns:
my_frame[column]=pd.to_datetime(my_frame[column], format='%d/%m/%y')
需要7秒
DataFrame.to_csv
)需要2秒正如您所看到的,存在很多差异,我认为这是一个相当令人惊讶的,因为它是一种标准的日期格式。那么阅读欧洲日期的正确方法是什么?