python - Pandas/Python 中的分块、处理和合并数据集

标签 python pandas merge dataset chunking

有一个大数据集,包含一个字符串。 我只想使用宽度通过 read_fwf 打开它,如下所示:

widths = [3, 7, ..., 9, 7]
tp = pandas.read_fwf(file, widths=widths, header=None)

它会帮助我 mark the data , 但系统崩溃(适用于 nrows=20000)。然后我决定按 block (例如 20000 行)来做,就像这样:

cs = 20000
for chunk in pd.read_fwf(file, widths=widths, header=None, chunksize=ch)
...:  <some code using chunk>

我的问题是:在对 block 进行一些处理(标记行、删除或修改列)后,我应该在循环中做什么以合并(连接?) block 回到 .csv 文件中?还是有别的办法?

最佳答案

我会假设,因为阅读了整个文件

tp = pandas.read_fwf(file, widths=widths, header=None)

失败但分块读取有效,文件太大无法一次读取并且您遇到了 MemoryError。

在那种情况下,如果您可以分块处理数据,然后将结果连接到 CSV 中,您可以使用 chunk.to_csv 将 CSV 写入 block :

filename = ...
for chunk in pd.read_fwf(file, widths=widths, header=None, chunksize=ch)
    # process the chunk
    chunk.to_csv(filename, mode='a')

注意 mode='a' 以追加模式打开文件,这样每个文件的输出 chunk.to_csv 调用附加到同一文件。

关于python - Pandas/Python 中的分块、处理和合并数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29907788/

相关文章:

python - 在 Python 中获取自午夜以来的秒数

python - 使用颜色编码节点绘制邻接矩阵

python - 将 Pandas DataFrame的每一行转换为单独的Json字符串

git - 我可以 git stash 正在进行的 merge 吗?

python - Django 使用错误的 python 版本运行

python - Pandas 数据帧 : How to groupby and sort "by blocks"?

python - 根据 groupby 和条件对列求和

python - 如何在忽略前缀的情况下对数据框进行排序?

c# - 如何将数据添加到合并字段

python - 将 python 字典列表的值合并到单个字典中