当前位置: 首页 > 面试题库 >

如何使用标头完整的python导入csv文件,其中第一列为非数字

白学
2023-03-14
问题内容

这是上一个问题的详细说明,但是当我深入研究python时,我对python如何处理csv文件感到更加困惑。

我有一个csv文件,并且必须保持这种状态(例如,无法将其转换为文本文件)。它相当于5行乘11列的数组或矩阵或向量。

我一直在尝试使用在这里和其他地方(例如python.org)找到的各种方法来读取csv,以便它保留列和行之间的关系,其中第一行和第一列=非数值。其余为浮点值,并包含正浮点数和负浮点数。

我想做的是导入csv并在python中编译它,这样,如果我要引用列标题,它将返回存储在行中的关联值。例如:

>>> workers, constant, age
>>> workers
    w0
    w1
    w2
    w3
    constant
    7.334
    5.235
    3.225
    0
    age
    -1.406
    -4.936
    -1.478
    0

依此类推…

我正在寻找用于处理这种数据结构的技术。我是python的新手。


问题答案:

Python的csv模块按行处理数据,这是查看此类数据的常用方法。您似乎想要按列的方法。这是一种方法。

假设您的文件已命名myclone.csv并包含

workers,constant,age
w0,7.334,-1.406
w1,5.235,-4.936
w2,3.2225,-1.478
w3,0,0

此代码应该给您一个或两个想法:

>>> import csv
>>> f = open('myclone.csv', 'rb')
>>> reader = csv.reader(f)
>>> headers = next(reader, None)
>>> headers
['workers', 'constant', 'age']
>>> column = {}
>>> for h in headers:
...    column[h] = []
...
>>> column
{'workers': [], 'constant': [], 'age': []}
>>> for row in reader:
...   for h, v in zip(headers, row):
...     column[h].append(v)
...
>>> column
{'workers': ['w0', 'w1', 'w2', 'w3'], 'constant': ['7.334', '5.235', '3.2225', '0'], 'age': ['-1.406', '-4.936', '-1.478', '0']}
>>> column['workers']
['w0', 'w1', 'w2', 'w3']
>>> column['constant']
['7.334', '5.235', '3.2225', '0']
>>> column['age']
['-1.406', '-4.936', '-1.478', '0']
>>>

要将数值放入浮点数,请添加此内容

converters = [str.strip] + [float] * (len(headers) - 1)

提前做

for h, v, conv in zip(headers, row, converters):
  column[h].append(conv(v))

而不是上面类似的两行。



 类似资料:
  • 问题内容: 我收到了必须导入到SQL表中的文本文件,我必须附带SSIS,因为我每天都会收到平面文件,第一行作为Customer_ID,然后输入发票详细信息,然后输入总计发票。 例子 : 30303 0000109291700080190432737000005产品名称 0000210291700080190432737000010产品名称 00003092917000801904327370000

  • 问题内容: 如何在Python中导入其他文件? 我到底该如何导入特定的文件呢? 如何导入文件夹而不是特定文件? 我想根据用户输入在运行时动态加载Python文件。 我想知道如何从文件中仅加载一个特定部分。 例如,在我有: 尽管这给了我中的所有定义,但也许我只想要一个定义: 我要从import语句中添加些什么? 问题答案: 是Python中的新增功能,用于以编程方式导入模块。它只是一个包装器,请参见

  • 我正在尝试将以下数据写入csv文件。这些数据是employdetails name1-surname1-place1 名称4-surname4-place4 我希望输出在CSV文件上,一个在另一个下面,在单独的行上。 我写了下面的代码 -KD

  • 我目前正在努力导入一个excel-csv文件到python。我确信我的问题很容易解决,但是我对Python编程还是很陌生的。 我使用的代码是: 然后我得到了这种错误: 我考虑过需要添加sep=“,”之类的内容,但这也不起作用。所以我现在有点无助。已经非常感谢了!:)

  • 问题内容: 我有一个CSV文件,我想使用Python将此文件批量导入到sqlite3数据库中。该命令是“ .import .....”。但似乎不能这样工作。谁能给我一个在sqlite3中做事的例子吗?我正在使用Windows,以防万一。谢谢 问题答案: