首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从tsv文件中删除低值

问如何从tsv文件中删除低值
EN

Stack Overflow用户
提问于 2021-05-21 07:44:33
回答 3查看 89关注 0票数 0

我有这份TSV文件:

代码语言:javascript
复制
    kind        10
    men        9
    number        8
    animated        7
    blade        6
    jolly        5
    manage        4
    move         3
    complete        2
    meat        1

我想删除所有小于数字5的单词。

因此,只有:

代码语言:javascript
复制
    Output: 
    kind        10
    men        9
    number        8
    animated        7
    blade        6
    jolly        5

我想把它作为python代码来完成。我在想,也许我可以把它载入一个列表,然后从那里看数字,如果它小于5,它就被删除了。但我不确定该怎么做。

就像这样:

代码语言:javascript
复制
    new_file = open(the_file,encoding="utf-8")
    data = new_file.readlines()
    new_list = []
    for values in data:
        if values > 5:
            new_list.append(values)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-21 07:54:13

欢迎来到社区。正如其他人所建议的那样,你很可能会使用熊猫。如果要使用csv模块,可以执行以下操作:

代码语言:javascript
复制
import csv

tsv_file = open("example.tsv")
read_tsv = list(csv.reader(tsv_file, delimiter="\t"))

for row in read_tsv:
    if float(row[1]) < 5:
        read_tsv.remove(row)

它将文件读入列表列表,每一行都是一个列表。如果它的值总是第二个,您可以这样读它,并从更大的列表中删除行。希望能帮上忙!

编辑:,对不起,我刚看到你的评论。尝试一些类似我在这篇文章中编辑的东西(我对CSV做了一些错误的假设,但我认为它现在已经修复了。)希望它能成功。

票数 1
EN

Stack Overflow用户

发布于 2021-05-21 07:50:07

如果你在看这类文件,我真的会调查潘达斯的。这基本上就是类固醇的Excel。

代码大致如下所示:

代码语言:javascript
复制
df = pd.read_csv('file.tsv', sep='\t')
df = df.loc[4 < df['column_name']]
票数 0
EN

Stack Overflow用户

发布于 2021-05-21 08:04:02

首先,您应该在文件中阅读。这将给出一个包含文件中每一行的列表:

代码语言:javascript
复制
with open('test.txt', 'rt') as file:
    content = file.readlines()

现在,它足以检查从每一行的最后到数字生成的整数(在去掉换行符之后)。将其与5进行比较,然后将其写回文件,如下所示:

代码语言:javascript
复制
with open('test.txt', 'wt') as file:
    file.writelines([c for c in content if int(c.strip()[-2:]) >= 5])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67632694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档