为 40 个数据帧加速 pandas concat 函数,每个数据帧有 100 万行和 100 列

Posted

技术标签:

【中文标题】为 40 个数据帧加速 pandas concat 函数,每个数据帧有 100 万行和 100 列【英文标题】:speed up pandas concat function for 40 data frames each having 1 million rows and 100 columns 【发布时间】:2020-02-21 19:20:50 【问题描述】:

我想为大数据帧加速 pandas concat() 函数。

我有 40 个数据帧,每个数据帧有 100 万行和 100 列(列可以是任何东西:布尔值、字符串、整数等)。我们已经尝试在集群上运行它,使用dask 等。结果还没有到来!

任何想法都将受到高度赞赏。

【问题讨论】:

【参考方案1】:

如果我理解正确,您需要将 40 个形状为 (1M,100) 的数据帧连接成一个 df,从而得到 (40M,100) 形状。

如果是这种情况,你可以做这样的事情(用 Numpy 编写,但想法是适用的):

out = np.zeros((4000000, 10))
row_size = 1000000

for i in range(40):
   out[i * row_size : i * row_size + row_size, :] = datai #ith dataframe

【讨论】:

以上是关于为 40 个数据帧加速 pandas concat 函数,每个数据帧有 100 万行和 100 列的主要内容,如果未能解决你的问题,请参考以下文章

`pd.concat` 与 `join=='inner'` 不会产生 pandas 数据帧的交集

pandas.concat:无法处理非唯一的多索引!熊猫蟒

为具有大量字符串的数据帧加速 PyArrow Parquet 到 Pandas

Python Pandas - 发布 concat 多索引数据帧

使用 pandas 追加、连接、连接或合并两个数据框

pandas concat/merge/join 多个数据帧,该列只有一列