如何解决使用Python按时间顺序迭代多个CSV
我有几个压缩的大型CSV文件,其中包含要迭代的时间序列数据。我想按通用的时间顺序进行迭代,并且不能保证时间序列的一致性-例如事件从A.csv到B.csv再到C.csv可能没有顺序发生,A.csv中可能有10个顺序事件,然后B.csv中有1个顺序事件,然后再回到A.csv等。
每个时间序列还有多个CSV,这些CSV的时间顺序是已知的,例如A1.csv,A2.csv)
最有效的方法是什么?
到目前为止,我的想法是
读入Pandas DataFrame
将每个文件读入Pandas DataFrame中,然后按时间序列合并或遍历每一行,然后通过生成器返回最低的时间戳。
优点:
- 易于阅读CSV文件
缺点:
- 慢迭代
- 用例不能利用矢量化的优势
- 如果文件很大,内存效率低
读入Dask数据框
类似于Pandas,只是使用Dask来保存记忆。
优点:
- 易于阅读CSV文件
- 高效存储
缺点:
- 慢迭代
逐行浏览每个CSV
打开每个CSV文件,将每个行的最新行存储在Dictionary中,然后通过生成器返回最低的时间戳。随后的每个调用都会从CSV读取一条新行,其中Dict现在具有空值,并再次产生最低的时间戳。
优点
- 高效存储
- 可能合理快速地进行迭代?
缺点
- 打开多个文件可能会产生开销吗?
假设文件太大而无法容纳在内存中,那么从速度上进行迭代的最有效方法是什么?
修改 编辑以提供具体的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。