我在一个目录中有三个文本文件,其中有两列数据由制表符分隔(\t
)。取三个不同文本文件的平均值并编译成一个文件
我想在三个不同的文本文件的同一列取三个数字的平均值。我关心的数字在第二列或在标签之后(在列表中它将在位置1)。然后,我想输出一个文件,其中第1列的所有内容都被复制(它们是相同的文本),第2列是相应行的平均值。
这是我现在有的:我从另一个堆栈溢出问题中得到了这段代码,但它不会遍历3个不同的文件。
谢谢!
import sys
allfiledata = []
filenames = sys.argv[1:]
for filename in filenames:
rows = []
with open (filename, "r") as filehandle:
for line in filehandle:
rows.append(line.split())
allfiledata.append(rows)
print " ".join(allfiledata[0][0]) # column headers
for i1,columns in enumerate(allfiledata[0][1:]):
print columns[0],
for i2,value in enumerate(columns[1:]):
total = 0
for filedata in allfiledata:
total = int(filedata[i1+1][i2+1]) + total
print int(float(total)/len(allfiledata)+0.5),
print
我的文本文件看起来像这样:
FILE1.TXT
AAA 4
AAB 5
AAC 0
AAD 1
FILE2.TXT
AAA 4
AAB 5
AAC 0
AAD 1
file3.txt
AAA 4
AAB 5
AAC 0
AAD 1
注意:这些列表进入千位 我想获得三个不同文件中数字的平均值,它们看起来就像这样,并输出一个带有复制的第一列和数字平均值的文件。
这是一个功课题吗? – tipanverella
不,我是python编程新手(有一些java的经验),我在DNA Seq工作,基本上我已经完成了所有程序的工作,现在在处理文本文件时尝试处理数据时遇到了问题。 –