迭代文件Python

时间:2018-04-26 03:41:52

标签: python pandas loops csv

我希望分别计算Isc,Voc Imp,Vmp,FF和Pmp列中的所有基线数,并取每列的平均值。下面是我正在读到我的程序的文件(test_results.csv)。

enter image description here

这是我的代码。

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等所有列的计数。这是一个好方法吗?想要先解决第一个迭代问题,然后再继续讨论这个问题。

谢谢

1 个答案:

答案 0 :(得分:0)

您应该使用CSV模块中的DictReader或pandas模块中的read_csv

我推荐使用pandas模块,因为您还使用了对数据执行操作。

import pandas as pd

df = pd.read_csv("test_results.csv")

df将按原样包含您的CSV表,无需转换为浮点数或整数

相关问题