首页 > 解决方案 > 在 DataFrame 上使用 str.split(expand=True) 处理海量数据集

问题描述

我正在使用从 .txt 类型文件中作为 DataFrame 读取的~800,000,000 - 1,000,000,000 行的数据集。

此 DataFrame 作为单列读入,我必须使用 df[column_name].str.split(expand=True) 来展开每个值。这为一组空白之间的每个值提供了一个唯一的列。

该数据集的一个警告是,读入这一列的值的数量可能会有所不同——但如果任何值“缺失”,它们就会从序列的末尾缺失,而不是介于两者之间。

例如:

df_in

   0
0  123 203 113 32
1  555 22 155
2  670 12

然后使用df_out = df_in['0'].str.split(expand=True)

df_out

    0    1     3      4
0   123  203   113    32
1   555  22    155    None
2   670  12    None   None

问题是,在我得到这些遇到MemoryError问题的庞大数据集之前,这种方法运行良好。

有没有办法处理这些更大的数据集?也许使用多处理?

需要注意的是,保持 DataFrame 的索引很重要。

标签: pythonpython-3.xstringpandasdataframe

解决方案


推荐阅读