我是Python新手,我正在尝试将我创建的excel解算器模型“迁移”到Python中,以期获得更高效的处理时间。在
我收到一个.csv表,我用它作为模型的输入,它总是采用相同的格式。在
这个模型基本上使用了与产品A、B和C相关的4种不同的度量,我基本上决定了如何相应地为A、B和C定价。在
Python在这个阶段输入数据非常有效。这就是我所拥有的,如果有更好的方法,我也不会感到惊讶,所以请敞开心扉去尝试你们老兵们推荐的任何东西!在
import csv
f = open("141881.csv")
for row in csv.reader(f):
price = row[0]
a_metric1 = row[1]
a_metric2 = row[2]
a_metric3 = row[3]
a_metric4 = row[4]
b_metric1 = row[7]
b_metric2 = row[8]
b_metric3 = row[9]
b_metric4 = row[10]
c_metric1 = row[13]
c_metric2 = row[14]
c_metric3 = row[15]
c_metric4 = row[16]
.csv文件的格式为price、a_metric1、a_metric2、a_metric3、a_metric4、、price、b_metric1、b_metric2、b_metric3、b_metric4、price、、c_metric1、c_metric2、c_metric3、c_metric4
我跳过第二列和第三列价格,因为它们与第一列完全相同。在
但是,当我运行python脚本时,会出现以下错误:
^{pr2}$我不知道为什么会发生这种情况,当我自己看到数据时(在excel中,这个.csv文件会一直到Q列,或者我理解为行[16])。在
感谢你的帮助,对我的方法提出任何建议都是非常欢迎的。在
提前谢谢!在
查看pandas。在
将文件读取为:
要读取列:
^{pr2}$要读取行:
读取csv的python模块将输入的每一行转换成一个列表。 对于每一行,它将把行拆分为手机。在换句话说,一个数组由您在excel电子表格中的列组成。在
试运行终端:
所以这就是为什么要遍历电子表格的行,将值赋给一个新变量。在
^{bq}$但是。。。在
如果一个单元格是空的,或者一行的列数比另一个少:它将返回一个错误。就像你描述的那样。索引器错误意味着Python找不到这个特定单元格的值。换句话说,如果你的excel电子表格的某一行比另一行小,它会说没有这样的值来asign并抛出一个索引错误。这就是为什么知道如何捕捉异常对发现问题非常有用。例如,如果没有指定空值,请尝试验证每个列表是否具有相同的长度
^{pr2}$现在,您可以通过为未出现在csv文件中的值指定None值来跳过错误
您可以阅读更多关于Catching Exception
使用
print()
可以成为您的朋友:上面的代码将打印出每一行。在
要只打印第一行,请将
for
循环替换为:print(file_reader.__next__())
(假设是Python3)打印出行可以让您看到“行”到底是什么。在
p.S。 建议使用
with
,因为它可以为您处理文件的打开和关闭相关问题 更多 >
编程相关推荐