python - 删除数据集中的所有行 >= 一个值
问题描述
我有超过 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 或更大的行的最有效方法是什么。文件是由制表符分隔的文本文件。
解决方案
这是一个简单的 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)
推荐阅读
- sql - Sql 到 Linq。我该如何翻译?有翻译程序吗?
- python - 从多个 JSON 获取数据到数据库
- http - 捕获套接字异常
- python-3.x - Django在多个数据库和多个项目之间导入模型
- python - 如何在 python PyQt 中为倒计时应用程序编写代码
- javascript - 中心化 Axios API 取消
- javascript - 如何使用枚举(作为静态变量附加到类)作为类型
- django - 我如何告诉 gunicorn 在进行出站呼叫时使用代理服务器?
- database - 无法连接到 PostgreSQL 服务器:致命:角色“apache”不存在
- node.js - 是否可以针对其他字段而不是 _id 在猫鼬中填充数据