将多处理地图与pandas数据框一起使用? [英] Using multiprocessing map with a pandas dataframe?

查看:93
本文介绍了将多处理地图与pandas数据框一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用(python的)panda的map函数来处理一个大型CSV文件(〜50 GB),如下所示:

I am using (python's) panda's map function to process a big CSV file (~50 gigabytes), like this:

import pandas as pd

df = pd.read_csv("huge_file.csv")
df["results1"], df["results2"] = df.map(foo)
df.to_csv("output.csv")

有没有办法在此上使用并行化?也许使用多重处理的地图功能?

Is there a way I can use parallelization on this? Perhaps using multiprocessing's map function?

谢谢, 何塞

推荐答案

请参阅有关按块阅读的文档此处,例如此处追加

See docs on reading by chunks here, example here, and appending here

最好分批读取csv,进行处理,然后将其写到csv中(当然,转换为HDF更好).

You are much better off reading your csv in chunks, processing, then writing it out to a csv (of course you evven better off converting to HDF).

  • 占用相对恒定的内存量
  • 高效,可以并行完成(通常需要拥有一个HDF文件,您可以从中选择节; csv对此不利.)
  • 简单直接尝试进行多处理的复杂性

这篇关于将多处理地图与pandas数据框一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆