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

2024-04-03

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

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

这会帮助我标记数据 https://stackoverflow.com/questions/29800023/the-best-way-to-mark-split-dataset-in-each-string, 但系统崩溃了(适用于 nrows=20000)。然后我决定按块(例如 20000 行)进行操作,如下所示:

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

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


我假设自从阅读了整个文件

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

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

在这种情况下,如果您可以分块处理数据,那么连接CSV 中的结果,您可以使用chunk.to_csv以块的形式写入 CSV:

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调用附加到同一文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas/Python 中的分块、处理和合并数据集 的相关文章

随机推荐