Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中迭代文件_Python_Pandas_Loops_Csv - Fatal编程技术网

在Python中迭代文件

在Python中迭代文件,python,pandas,loops,csv,Python,Pandas,Loops,Csv,我希望分别统计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 =

我希望分别统计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":
这样我就可以统计基线的所有列,然后再统计TC200、热点等的所有列。这是一个好方法吗?在继续这个问题之前,我想先解决第一个迭代问题

谢谢

您应该使用CSV模块或熊猫模块

我建议使用pandas模块,因为您还可以使用对数据执行操作

import pandas as pd

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

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

如果您有CSV文件,请查看
CSV
模块或
pandas
,该模块可以通过
pandas.read\u CSV()
读取。是的,您可以使用
https://docs.python.org/2/library/csv.html
。不要存储
拆分(“,”)的结果
对同名变量的函数调用-您正在覆盖原始函数。在pandas中读取CSV文件和计算列平均值时有大量重复项。请关闭。@Ubuntunoob,很高兴我的回答帮助了你。你也要投票吗?