小编pyt*_*nja的帖子

分块读取 Pandas 中的多个 CSV 文件

当我们有多个 csv 文件并且所有 csv 的总大小约为 20gb 时,如何分块导入和读取多个 CSV?

我不想使用,Spark因为我想在 SkLearn 中使用模型,所以我想要解决方案Pandas本身。

我的代码是:

allFiles = glob.glob(os.path.join(path, "*.csv"))
df = pd.concat((pd.read_csv(f,sep=",") for f in allFiles))
df.reset_index(drop=True, inplace=True)
Run Code Online (Sandbox Code Playgroud)

但这失败了,因为我路径中所有 csv 的总大小为 17gb。

我想分块阅读它,但如果我这样尝试,我会收到一些错误:

  allFiles = glob.glob(os.path.join(path, "*.csv"))
  df = pd.concat((pd.read_csv(f,sep=",",chunksize=10000) for f in allFiles))
  df.reset_index(drop=True, inplace=True)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

“无法连接“”类型的对象;只有 pd.Series、pd.DataFrame 和 pd.Panel(不推荐使用)对象有效”

有人可以帮忙吗?

python pandas sklearn-pandas jupyter-notebook

5
推荐指数
1
解决办法
4219
查看次数

标签 统计

jupyter-notebook ×1

pandas ×1

python ×1

sklearn-pandas ×1