在Python中迭代文件
我希望分别统计Isc、Voc Imp、Vmp、FF和Pmp列中的所有基线数字,并取每列的平均值。下面是我正在程序中读取的文件(test_results.csv) 这是我的密码在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 =
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,很高兴我的回答帮助了你。你也要投票吗?