在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python 最后一列分類并統(tǒng)計頻率的問題

python 最后一列分類并統(tǒng)計頻率的問題

前兩列是位點信息,希望統(tǒng)計同一個位點下,第三列x有多少個,X有多少個,在python中應(yīng)該用什么方法能比較快的實現(xiàn)呢

Chr1 1001 x

Chr1 1001 X

Chr1 1001 x

Chr1 10018 X

Chr1 1002 x

Chr1 1002 X

目前我想的是根據(jù)前兩列為鍵,最后一列是X和x的頻率為值,建立兩個字典,然后分別輸出成兩個文件,怎么輸出成一個列表類似:
chr loc x X
Chr1 1001 2 1
chr1 1002 1 1
chr1 10018 0 1

回答
編輯回答
初心

可只用一個字典,以前二列為鍵,值為元組,第一項是X頻率,第二項是x頻率

if value == 'X':
    freq_dict[('chr', 'loc')][0] += 1
if value == 'x':
    freq_dict[('chr', 'loc')][1] += 1
2017年12月3日 14:44
編輯回答
舊顏

思考了一下,好像可以通過列表解決,tlist統(tǒng)計所有行,mlist統(tǒng)計只有X的行,uniqlist統(tǒng)計不重復(fù)行
通過遍歷uniqlist統(tǒng)計X行和x+X行的個數(shù)

tlist=[]
mlist=[]
uniqlist=[]
for l in  f.readlines():
        line = l.strip().split("\t")
        loc="\t".join(line[0:2])
        tlist.append(loc)
        uniqlist=list(set(tlist))
        if line[2]=="X":
                mlist.append(loc)
                for i in uniqlist:
                       out.write(i+"\t"+str(uniqlist.count(i))+"\t"+str(mlist.count(i))+"\n")
2018年4月23日 01:15