python - 拆分非常大的 Pandas 数据框,替代 Numpy array_split

标签 python pandas numpy dataframe split

关于使用 Numpy array_split 方法的行数限制有什么想法吗?

我有一个超过 600 万行的 dataframe,我想将它分成 20 个左右的 block 。

我的尝试遵循以下描述: Split a large pandas dataframe

使用 Numpy 和 array_split 函数,但是作为一个非常大的 dataframe 它会永远持续下去。

我的 dataframe 是 df,它包含 8 列和 660 万行。

df_split = np.array_split(df,20)

关于拆分它的替代方法有什么想法吗?另外,也欢迎提高数据帧性能的提示。

最佳答案

也许这可以通过将数据帧分成 block 来解决您的问题,就像这个例子一样:

import numpy as np
import pandas as pds

df = pds.DataFrame(np.random.rand(14,4), columns=['a', 'b', 'c', 'd'])

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))

for i in chunker(df,5):
    df_split = np.array_split(i, 20)
    print(df_split)

关于python - 拆分非常大的 Pandas 数据框,替代 Numpy array_split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420256/

相关文章:

python - 零碎的 : no module named win32api (windows)

安装模块时出现 Python ImportError [Ubuntu]

python - 合并多个文件并通过附加文件名保存它们

python - 查找回归平面并将其绘制到一组点

python - Numpy - 将行添加到数组

python - 使用远程服务器时编辑选项

python - 根据子串匹配列

python - pandas 中的 str.zfill() 有 ' 字符问题

python - 循环遍历 pandas xlsxwriter 表

python - 如何提高这种numpy迭代的效率?