我希望分别计算Isc,Voc Imp,Vmp,FF和Pmp列中的所有基线数,并取每列的平均值。下面是我正在读到我的程序的文件(test_results.csv)。
这是我的代码。
from MyClasses import TestResult
def main():
test = "test_results.csv"
inputFile = open(test, 'r')
user = TestResult()
counter = 0.0
hold = 0.0
for i in range (4,10):
for l in inputFile.readlines()[1:]:
split = l.split(",")
if user.getTestSeq(split[1]) == "Baseline":
num = float(user.getIsc(split[i]))
hold += num
counter += 1
print counter
print hold
total = hold/counter
print total
main()
我用了
行num = float(user.getIsc(split[i]))
希望我可以迭代i,总共一列,取平均值并移动到下一列。但我无法进入下一栏。我只是多次打印出相同的Isc列。任何想法为什么?我也希望将测试序列项放在一个列表中,我可以用相同的方式遍历行
if user.getTestSeq(split[1]) == "Baseline":
这样我就可以计算Baseline的所有列,然后移动到TC200,Hotspot等所有列的计数。这是一个好方法吗?想要先解决第一个迭代问题,然后再继续讨论这个问题。
谢谢
答案 0 :(得分:0)
您应该使用CSV模块中的DictReader或pandas模块中的read_csv
我推荐使用pandas模块,因为您还使用了对数据执行操作。
import pandas as pd
df = pd.read_csv("test_results.csv")
df将按原样包含您的CSV表,无需转换为浮点数或整数