判断1条read是否对应多个种_202112

文章展示了如何使用Python的pandas库读取CSV文件,进行数据分析,筛选高匹配度,去重,并将结果保存到新的CSV文件。主要涉及数据过滤、统计和数据清洗操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd

file1 = r"2021-10\K200005137_L01_126_nt_virus_blastn_match_taxid_lineage_add_kgs1.txt"
df1 = pd.read_csv(file1, sep='\t')
print(df1)

# for i in range(len(df1)):
#     if df1.loc[i,'% identity']>99:
#         print('meet the requirement')
#     else:
#         print('error')
#         exit

print(df1.loc[:,'% identity'])
print(df1['% identity'].value_counts(ascending=False))

for i in range(len(df1['% identity'])):
    if df1['% identity'][i] >80:
        i+=1
    else :
        print("unmeet")
        break

list1=df1['Query_id'].unique().tolist()
# print(type(df1['Query id'].unique()))
print(list1)
print(len(list1),df1.shape[0])


# for i in range(df1.shape[0]):
#     df1.loc[i,'Query id']=list1[j]:

# for j in range(len(list1)):
#     if list1[j]==df1.loc[:,'Query id']:

# group = df1.groupby('Query id')
# print(group)

# dict1=df1[['Query_id','species']].set_index('Query_id').to_dict()['species']
# print(dict1)
# print(len(dict1.keys()),len(dict1.values()))

for i,item in df1.iterrows():
    print(i,item.Query_id,item.species)
print(df1['Query_id'].items)

# m=0
list3=[]
for i in range(len(list1)):
    list2=df1[df1['Query_id']==list1[i]]['species'].tolist()
    print(list2)
    # m=m+1
# print(m)
#   if len(set(list2))==1               怎么判定一个List里面的元素是不是全部一样
    for j in range(1,len(list2)):
        if str(list2[j]) .split(' ',2)[0]!= str(list2[0]).split(' ',2)[0]:
            # print("不一样!")
            # break
            print(list1[i])
            list3.append(list1[i])
            break
        else:
            # print("一样")
            j=j+1

print(list3)
for i in range(len(list3)):
    df1=df1[~df1['Query_id'].isin([str(list3[i])])]     #删除df表中包含指定字符串”strings“的行数据
print(df1)

df2=df1.reset_index(drop=True) #重建索引
print(df2)

df2.to_csv(r"2021-10\output5.txt",index=None,sep='\t')

# print(type(set(df1['% identity']).tolist()))
file2 = r"2021-10\output5.txt"
df3 = pd.read_csv(file2, sep='\t')
df4=df3.drop_duplicates(subset='Query_id').reset_index() #利用subset参数指定去除某一列的重复值。 https://blog.youkuaiyun.com/zx1245773445/article/details/99973622
df5=df4['species'].value_counts(ascending=False)
print(df4)
print(df5)
df4.to_csv(r"2021-10\output6.txt",index=None,sep='\t')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值