我正在研究一种方法来平均多个文件中的数据并将结果放入单个文件中。文件的每一行如下所示:
文件#1
Test1,5,2,1,8
Test2,10,4,3,2
...
文件#2
Test1,2,4,5,1
Test2,4,6,10,3
...
这是我用来存储数据的代码:
totalData = []
for i in range(0, len(files)):
data = []
if ".csv" in files[i]:
infile = open(files[i],"r")
temp = infile.readline()
while temp != "":
data.append([c.strip() for c in temp.split(",")])
temp = infile.readline()
totalData.append(data)
所以我剩下的是看起来像下面这样的totalData:
totalData = [[
[Test1,5,2,1,8],
[Test2,10,4,3,2]],
[[Test1,2,4,5,1],
[Test2,4,6,10,3]]]
我想要平均的是对所有 Test1、Test2 等,平均所有第一个值,然后是第二个值,依此类推。所以 testAverage 看起来像:
testAverage = [[Test1,3.5,3,3,4.5],
[Test2,7,5,6.5,2.5]]
我正在努力想出一种简洁/有效的方法来做到这一点。任何帮助是极大的赞赏!另外,如果有更好的方法来管理此类数据,请告诉我。
最佳答案
只需要两个循环
totalData = [ [['Test1',5,2,1,8],['Test2',10,4,3,2]],
[['Test1',2,4,5,1],['Test2',4,6,10,3]] ]
for t in range(len(totalData[0])): #tests
result = [totalData[0][t][0],]
for i in range(1,len(totalData[0][0])): #numbers
sum = 0.0
for j in range(len(totalData)):
sum += totalData[j][t][i]
sum /= len(totalData)
result.append(sum)
print result
关于python - Python中列表列表中的列表中的值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905875/