使用唯一组(列值)将文本文件拆分为多个文件的最快方法是什么

2024-09-29 09:22:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大数据,需要尽快分割成多个文件。在

如果我有数据

chr    a_val    b_val   a_idx
2      1355     25d     abd
2      1785     25d     abd
2      1825     36g     ahj
3      1125     25d     abd
3      1568     25d     aky
3      2398     g67     abd
3      1125     25d     afd
3      1525     25d     abd
..............
.............

在pandas数据框中我会这么做。在

^{pr2}$

熊猫跑得很快。但是,是否还有其他基于unix、linux或python的进程以最快的方式分割数据呢。在

谢谢


Tags: 文件数据pandaslinuxunixval我会idx
1条回答
网友
1楼 · 发布于 2024-09-29 09:22:02

这可能更快,因为它不会将整个csv拉入内存,但您必须计时才能看到。在

import itertools

with open('myfile.txt', 'rb') as in_fp:
    header = next(in_fp)
    for fchr, fileblock in itertools.groupby(in_fp, 
            lambda line: line.split(b'\t', 1)[0]):
        with open('outfile-' + fchr.decode('ascii'), 'wb') as out_fp:
            out_fp.write(header)
            out_fp.writelines(fileblock)

相关问题 更多 >