Che*_*.aa 3 python merge dataset chunking pandas
有一个包含字符串的大型数据集.我只是想通过read_fwf使用widths打开它,如下所示:
widths = [3, 7, ..., 9, 7]
tp = pandas.read_fwf(file, widths=widths, header=None)
Run Code Online (Sandbox Code Playgroud)
它可以帮助我标记数据,但系统崩溃(使用nrows = 20000).然后我决定用chunk(例如20000行)来做,像这样:
cs = 20000
for chunk in pd.read_fwf(file, widths=widths, header=None, chunksize=ch)
...: <some code using chunk>
Run Code Online (Sandbox Code Playgroud)
我的问题是:在对块进行一些处理(标记行,删除或修改列)之后,我应该在循环中做什么来合并(连接?)块.csv文件?还是有另一种方式?
我将假设自从阅读整个文件
tp = pandas.read_fwf(file, widths=widths, header=None)
Run Code Online (Sandbox Code Playgroud)
失败,但读取块工作,文件太大,无法立即读取,并且您遇到了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')
Run Code Online (Sandbox Code Playgroud)
请注意,mode='a'以附加模式打开文件,以便将每个chunk.to_csv调用的输出
附加到同一文件.