将CSV数据映射到Python

2024-09-28 18:45:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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])。在

感谢你的帮助,对我的方法提出任何建议都是非常欢迎的。在

提前谢谢!在


Tags: 文件csv数据方法模型格式excelprice
3条回答

查看pandas。在

将文件读取为:

data = pd.read_csv('141881.csv'))

要读取列:

^{pr2}$

要读取行:

row = data.ix[row_number]
  • Python中的CSV模块将电子表格转换为矩阵:列表列表

读取csv的python模块将输入的每一行转换成一个列表。 对于每一行,它将把行拆分为手机。在换句话说,一个数组由您在excel电子表格中的列组成。在

试运行终端:

>>> f = open("141881.csv")
>>> print csv.reader(f)
>>>[["id", "name", "company", "email"],[1563, "defoe", "SuperFastCompany",],["def@superfastcie.net"],[1564, "doe", "Awsomestartup", "doe@awesomestartup"], ...]`

所以这就是为什么要遍历电子表格的行,将值赋给一个新变量。在

^{bq}$

但是。。。在

  • 什么是索引器错误?捕获异常:

如果一个单元格是空的,或者一行的列数比另一个少:它将返回一个错误。就像你描述的那样。索引器错误意味着Python找不到这个特定单元格的值。换句话说,如果你的excel电子表格的某一行比另一行小,它会说没有这样的值来asign并抛出一个索引错误。这就是为什么知道如何捕捉异常对发现问题非常有用。例如,如果没有指定空值,请尝试验证每个列表是否具有相同的长度

^{pr2}$

现在,您可以通过为未出现在csv文件中的值指定None值来跳过错误

您可以阅读更多关于Catching Exception

使用print()可以成为您的朋友:

import csv
with open('141881.csv') as file_handle:
    file_reader = csv.reader(file_handle)
    for row in file_reader:
        print(row)

上面的代码将打印出每一行。在

要只打印第一行,请将for循环替换为:print(file_reader.__next__())(假设是Python3)

打印出行可以让您看到“行”到底是什么。在

p.S。 建议使用with,因为它可以为您处理文件的打开和关闭

相关问题 更多 >