【问题标题】:read csv faster than pd.read_csv读取 csv 比 pd.read_csv 快
【发布时间】:2020-02-13 09:16:09
【问题描述】:

我正在寻找一种比 pandas read_csv 更快的 read_csv 方法。

谁能告诉我原因

%%time
reader = csv.reader(open('qwerty.csv', 'r'))
out = list(reader)

%%time
dtf_out = pd.read_csv("qwerty.csv")

详情:

qwerty.shape (100000,2)
wall.time csv.reader 800ms
wall.time pd.read_csv 200ms

有没有 Python 的 csv-reader,比 pd.csv_read() 还要快?

【问题讨论】:

标签: python pandas csv


【解决方案1】:

我将假设 csv 文件非常简单。 pandas 针对处理表格数据进行了高度优化,并使用纯 C 数组的 numpy 数组作为其底层容器。

这意味着dtf_out = pd_read("qwerty.csv")主要在C语言级别执行,开销很小。

csv 模块版本还不错,但必须从 reader 迭代器构建 Python 列表。

但是你的比较并不公平。加载 pandas 模块需要一些时间,可能远远超过 600 毫秒的差异。事实上,这一切都取决于你想对数据做什么。如果您想以可矢量化的方式处理它,请使用既快速又强大的 numpy 或 pandas。如果您想做一些字符串操作(不可矢量化),请使用 csv 模块。如果您需要节省内存,也可以忘记 pandas。

【讨论】:

  • 感谢您的评论。我的最终目标是使用字典而不是数据框来加速操作(希望如此)。我的第一次尝试是阅读不使用熊猫的 csv 文件。就这样。顺便说一句,在%%time 中导入熊猫仍然比 csv 模块快,我仍然不明白为什么,我可能遗漏了一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2022-11-01
  • 1970-01-01
  • 2017-10-17
  • 2021-10-15
  • 2020-12-17
  • 1970-01-01
相关资源
最近更新 更多