首页 > 解决方案 > 如何将 CSV 中的日期列直接作为 datetime[ns] 类型加载到 Pandas DataFrame 中?

问题描述

我有一个巨大的 CSV 文件,其中包含这样的日期列:

a,b,c
10-15,2008-10-20,2008-10-21
1996-06-20,1996-06-21,1996-07-25
1998-06-22,1998-06-23,1998-06-23
.
.
.

我想将 thsi 文件读入 Pandas DataFrame,同时将日期直接存储为datetime64[ns]类型。所以我尝试了

pd.read_csv(fname, dtype={
             'a': np.datetime64,
             'b': np.datetime64,
             'c': np.datetime64 })

但熊猫解析器抱怨。

我想避免使用该parse_dates选项或使用 对 DataFrame 进行后处理astype,因为 CSV 有 5000 万行,每次加载 CSV 时,转换都需要很长时间。

有没有办法将日期直接读入datetime64[ns]类型?


更新:事实证明,使用选项读取 CSV (如建议副本parse_dates的答案中所建议)在性能方面*不错**:在我的机器上读取 5000 万条记录需要

标签: pythonpandascsvdatetime

解决方案


推荐阅读