python - 如何将 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 万条记录需要
- 不转换为日期对象2:30 分钟
- 转换 为日期对象5:50 分钟
解决方案
推荐阅读
- python - 功能和参数
- java - 在所有 Spring Batch Step 中共享 HSQLDB
- c# - 如何在C#中实现取消从PC删除文件夹、文件的过程并恢复已删除的信息?
- c# - 仅解析特定的文本/int
- parameters - Vue - 使用路由器链接将道具传递给路由器
- hadoop - SAS Hive SQL (Hadoop) 版本的 Proc Transpose?
- r - 用 t 分数 (2.5 SD) 间隔绘制骨矿物质密度 (BMD) 曲线?
- git - 用于创建 git changelog 的 Powershell 脚本
- mongodb - 由于 WiredTiger.turtle 权限,Mongodb 无法启动
- logic - 一阶逻辑 - 量词的位置