Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除不包含特定文本的行-Python_Python_Pandas_Dataframe - Fatal编程技术网

删除不包含特定文本的行-Python

删除不包含特定文本的行-Python,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个表格文件,如下所示: query_name KEGG_KOs PROKKA_00013 NaN PROKKA_00015 bactNOG[38] PROKKA_00017 NA|NA|NA PROKKA_00019 K00240 PROKKA_00020 K00246 PROKKA_00022 K02887 如果第2列(“KEGG_KOs”)不是以“K0”开头,我将尝试创建一个脚本来遍历并删除整行。我正在尝试创建以下输出: query_na

我有一个表格文件,如下所示:

query_name      KEGG_KOs
PROKKA_00013    NaN
PROKKA_00015    bactNOG[38]
PROKKA_00017    NA|NA|NA
PROKKA_00019    K00240
PROKKA_00020    K00246
PROKKA_00022    K02887
如果第2列(“KEGG_KOs”)不是以“K0”开头,我将尝试创建一个脚本来遍历并删除整行。我正在尝试创建以下输出:

query_name     KEGG_KOs
PROKKA_00019    K00240
PROKKA_00020    K00246
PROKKA_00022    K02887
以前的回复提到人们使用熊猫数据框,但我没有运气使用这些回复来帮助他们。任何人都将不胜感激,干杯

我试过了(但这只隔离了一个特定的K0线)

df = pd.read_csv("eggnog.txt", delimiter="\t", names=["#query_name", "KEGG_KOs"])
print(df.loc[df['KEGG_KOs'] == 'K00240'])
regex一起使用或与
regex一起使用,用于字符串
^
和参数
na=False
,因为缺少值:

df1 = df[df['KEGG_KOs'].str.startswith('K0', na=False)]
print (df1)
     query_name KEGG_KOs
3  PROKKA_00019   K00240
4  PROKKA_00020   K00246
5  PROKKA_00022   K02887
或:


您可以使用先读后写的方式打开。假设原始文件保存为old.txt,更新后的文件保存为new.txt

text = ''
with open("old.txt", 'r') as org:
    next(org)
    for line in org:
        data = line.strip().split()
        if data[1].startswith("K0"):
            text = text + data[0] + " "+ data[1] + '\n'

w = open('new.txt', 'w')
w.write("query_name"+" "+ "KEGG_KOs\n")
w.write(text)
w.close()

你能给我们看一下你的代码和你的尝试吗?
text = ''
with open("old.txt", 'r') as org:
    next(org)
    for line in org:
        data = line.strip().split()
        if data[1].startswith("K0"):
            text = text + data[0] + " "+ data[1] + '\n'

w = open('new.txt', 'w')
w.write("query_name"+" "+ "KEGG_KOs\n")
w.write(text)
w.close()