我有一个很大的 CSV 文件——将近 2800 万行和 57 列——8.21GB——数据是不同类型的——整数、字符串、浮点数——但没有什么不寻常的。
当我在 Python/Pandas 中加载它时,使用以下代码需要 161 秒。
df = pd.read_csv("file.csv", header=0, low_memory=False)
Run Code Online (Sandbox Code Playgroud)
在 Julia 中,它需要更长的时间 - 一个多小时。更新:我不知道为什么,但是当我今天早上运行代码(检查两次)时,它花了大约 702 和 681 秒。这比一个小时好多了,但它仍然比 Python 慢得多。
我的 Julia 代码也很简单:
df = CSV.File("file.csv") |> DataFrame
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?有什么我可以做的来加快速度吗?或者这只是你和朱莉娅一起玩的代价?
小智 1
来自CSV.jl 文档:
在某些情况下,接收器可能会为了自身安全而复制传入数据;通过调用 CSV.read(file, DataFrame),不会创建已解析的 CSV.File 的副本,并且 DataFrame 将直接拥有 CSV.File 的列,这比执行 CSV.File(file) | 更有效。 > DataFrame 这将导致为每列创建一个额外的副本。
所以你可以尝试
CSV.read("file.csv", DataFrame)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |