import pandas as pd
def process_doc(txt_path1, txt_path2):
# 加载文件1,使用默认列名 test.txt
file1 = pd.read_csv(txt_path1, sep='\s+', header=None)
# 加载文件2,使用默认列名 t.txt
file2 = pd.read_csv(txt_path2, sep='\s+', header=None)
for index1, row1 in file1.iterrows(): # row1是test.txt里的内容
for index2, row2 in file2.iterrows(): # row2是t.txt里的内容
if row1[0] == row2[11]: # 比较文件1和文件2的第一列
file2.at[index2, 'total_length'] = row1.iloc[1] # 修改文件2的'total_length'列为文件1的第二列
# 保存到新文件
file2.to_csv("processed.txt", sep='\t', index=False, header=False)
return file2
def count(data):
# 读取数据,假设数据存储在名为 'data.txt' 的文件中,且列之间以制表符分隔
#data = pd.read_csv('new.txt', sep='\s+', header=None) 若两个脚本分开运行的话可以把这个取消注释。
# 初始化总和为0
total_sum = 0
total_sum_first = 0
tag_line = 11 #query名称所在列
length_line = 6 #query比对上的长度所在列
# 遍历数据,计算满足条件的总和
for index, row in data.iterrows():
print(index)
if index == 0:
total_sum_first = data.iloc[index, length_line]
data.at[index, 'total_sum'] = total_sum_first
elif 0 < index < len(data) - 1 and row[tag_line] == data.iloc[index - 1, tag_line]:
total_sum = data.iloc[index - 1, length_line] + total_sum + data.iloc[index, length_line]# 累加第七列内容
data.at[index, 'total_sum'] = total_sum
elif 0 < index < len(data) - 1 and not row[tag_line] == data.iloc[index - 1, tag_line]:
print("{}的对比长度是{}".format(data.iloc[index - 1, 11], data.iloc[index - 1, 15]))
print(data.iloc[index - 1, 15]/data.iloc[index - 1, 14])
data.at[index, 'total_sum'] = data.iloc[index, 6]
total_sum = 0
elif index == len(data) - 1:
total_sum = data.iloc[index - 1, length_line] + total_sum + data.iloc[index, length_line]
data.at[index, 'total_sum'] = total_sum
print("{}的对比长度是{}".format(data.iloc[index, 11], data.iloc[index, 15]))
print(data.iloc[index, 15] / data.iloc[index, 14])
data.to_csv("finally.txt", sep='\t', index=False, header=False)
print(data) #仅作最终测试使用!
data = process_doc("test.txt","t.txt")
count(data)
coverage 2.0.py
最新推荐文章于 2024-08-14 23:12:09 发布