我有一个大的文本文件,比如小的例子:
小例子:
chr1 37091 37122 D00645:305:CCVLRANXX:1:1104:21074:48301 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1104:4580:50451 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1106:13064:5974 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1106:16735:48726 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:2210:5043:83540 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:2204:15744:24410 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:2204:19627:73060 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:2206:8497:68295 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1312:11371:24672 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1312:17050:42431 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1312:12969:62696 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1312:6478:73521 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1312:8402:80222 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1309:19837:15007 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1309:20126:89687 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1310:2838:27860 0 -
chr1 37091 37122 D00645:305:CCVLRANXX:1:1310:7280:85906 0 -
chr1 54832 54863 D00645:305:CCVLRANXX:1:2102:19886:3949 0 -
chr1 74307 74338 D00645:305:CCVLRANXX:1:2203:13233:29983 0 -
chr1 74325 74356 D00645:305:CCVLRANXX:1:1310:7266:92995 0 -
chr1 93529 93560 D00645:305:CCVLRANXX:1:1103:1743:29602 0 +
chr1 93529 93560 D00645:305:CCVLRANXX:1:1101:16098:97354 0 +
我试图计算第1、第2和第3列相似的行数,并创建一个包含4列的新文件,其中前3列与原始文件相似,但第4列是每行重复的次数。例如,17
行中有chr1 37091 37122
下面是上述小示例的预期输出:
预期产量:
chr1 37091 37122 17
chr1 54832 54863 1
chr1 74307 74338 1
chr1 74325 74356 1
chr1 93529 93560 2
我用python编写了这段代码,但它没有返回我想要的内容。你知道怎么修吗?你知道吗
infile = open('infile.txt', 'rb')
content = []
for i in infile:
content.append(i.split())
final = []
for j in range(len(content)):
if content[j] == content[j-1]:
final.append(content[j])
with open('outfile.txt','w') as f:
for sublist in final:
for item in sublist:
f.write(item + '\t')
f.write('\n')
您还可以使用
pandas
,您的解决方案将非常简单:只需读取熊猫
dataframe
中的大txt文件,如:这应该给你:
如果这有帮助,请告诉我。你知道吗
可以这样使用
Counter
:可以将目标比较行作为键使用常规词典:
键是连接的第二列和第三列。值是一个列表-第一个元素是计数器,第二个元素是输入文件中要保存到输出的值的列表。if检查是否已经有一个具有给定键的条目-如果是,则递增计数器;如果不是,则创建一个新的列表,其中counter设置为1,适当的值作为列表部分。你知道吗
请注意,为了保持一致性,程序在这两种情况下都使用建议的
with open
。它也不会以二进制模式读取txt文件。你知道吗相关问题 更多 >
编程相关推荐