首页 > 解决方案 > 删除数据集中的所有行 >= 一个值

问题描述

我有超过 400,000 行的广泛数据集。以下是数据集的示例:

40005 1583274133
40000 1583274134
40004 1583274135
40004 1583274136
160 1583274137
40005 1583274137
40006 1583274138
40003 1583274139
40001 1583274140
40003 1583274141
40003 1583274142

我需要删除任何以大于或等于 40000 的数字开头的行。它是μ介子衰变率的粒子物理数据,所以任何超过 40000 纳秒的东西基本上都是无用的。我知道如何打开和写入文件,我只是不确定摆脱第一列中所有 40000 或更大的行的最有效方法是什么。文件是由制表符分隔的文本文件。

标签: pythonfiletext-parsing

解决方案


这是一个简单的 Python 解决方案,它逐行处理输入,因此它没有内存使用的缩放问题:

with open(in_file) as f_in, open(out_file, 'w') as f_out:
    for line in f_in:
        if int(line.split()[0]) < 40000: #checking the condition
            f_out.write(line)

推荐阅读