将相同name不同taxid合并数量相加_202112

文章展示了使用Python的Pandas库对CSV文件进行数据清洗、去重、计数和排序的过程,包括读取文件、删除指定列、按名称去重并计算计数值,最后保存为新CSV文件。

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

import pandas as pd
file1 = r"2021-10\K200005137_L01_126_priceseq_dedup_lzw_bowtie2_subsample_gsnapfilter_gasnap.m8_match_taxid_lineage_add_kgs_delrepeat1_out - 1.txt"
df1 = pd.read_csv(file1, sep='\t')

print(df1)
print(df1['Name'])
print(df1['count'])
# print(df1.loc['Name','count'])
# print(df1.groupby('Name').sum())

# df2=df1.drop(df1.columns[['taxid','count']])

print(df1.columns)
df2=df1.drop(columns=['taxid','count'],axis=1)  #去掉2列,axis=0或axis='rows',都表示展出行,也可用labels参数删除行, inplace=True
print(df2)

df3=df1.drop(columns=['count'],axis=1) #去掉一列

df4 = df3.drop_duplicates(subset=['Name', 'level 1'],keep='first') # 按全量字段去重, 保留第一个(默认)
df4.reset_index(drop=True,inplace=True) #重置索引
# print(df4['taxid'])
print(df4)

list1 =df1['Name'].unique().tolist()
# print(len(list1))
# if df1.loc[i,'Name']=

df4["count"]=0
for i in range(len(list1)):
    print(list1[i])
    # print(df1[df1["Name"]==list1[i]]['count'].tolist())
    list2=df1[df1["Name"]==list1[i]]['count'].tolist()
    # print(type(df1[df1["Name"]==list1[i]]['count'])) <class 'pandas.core.series.Series'>
    count_sum = sum(list2)  # 元素相加
    if df4.loc[i,'Name']==list1[i]:
        df4['count'][i]=count_sum

print(df4)
    # print(count_sum)
order = ['Name', 'level 1', 'taxid', 'count', 'kingdom', 'genus', 'species','type']
df4 = df4[order]
df4.to_csv(r"2021-10\output8.txt",index=None,sep='\t')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值