gpt4 book ai didi

python - 在 Python 中访问 CSV 文件中的列数据

转载 作者:行者123 更新时间:2023-11-28 21:59:06 30 4
gpt4 key购买 nike

我有一个包含 A、B、C、D 列和 N 行的 CSV 文件。问题是这些列中的数据长度不同,即有些是 4.5,有些是 4.52。

我的问题分为两部分:

如何从 csv 文件访问这些列。我使用此代码打印 csv 文件的内容并将它们读入数组

    import csv
with open('file.csv','rb') as f:
reader = csv.reader(f)
for row in reader:
print row

打印 CSV 文件中的行,我替换了

    print row 

    z = row
z.append(z)

将数据保存到数组中。

但是 z 是一维数组。并且数据是字符串类型。当我尝试执行 np.median(z) 类型的操作时,它给我一个错误。还有,我做不到

    z.append(float(z))

这给我一个 TypeError。

而且,当我们从 csv 文件导入它们时,是否有截断值并将它们设置为特定精度的方法?!例如,如果文件具有 4.3、4.56、4.299 等值,...,我想将最终导入的内容限制为只有一位小数。

这个 SE 问题最接近回答我的第二个问题 - Python - CSV: Large file with rows of different lengths - 但我不明白。如果你们中的任何人可以帮助我解决这个问题,我将不胜感激。

编辑 1:@ Richie:这是一个示例数据集 - http://goo.gl/io8Az .它链接到谷歌文档。并记录你的评论,这是我在我的 csv 文件上运行你的代码的结果 -

     ValueError: could not convert string to float: plate

@ Pieters : z = row, z.append(z) 创建了这个 -['3836', '55302', '402', '22.945717', '22.771544', '23.081865', '22.428421', '21.78294', '164.40663689', '-1.25641627', '1.780485', '1.780485', '1628247'4628267 [...]]。

我应该提一下,我刚刚开始使用 Python,而且我正在学习一些需要知道的东西!我正在即兴创作我在网上找到的一些代码片段。

编辑 2:我听说过 Pandas 。我想我应该开始使用它了。

@ Khalid - 我已经运行了您的代码,并且能够检索到我想要的列。我可以访问它而不是打印整行吗?!作为静态数组?!

编辑 3:@ richie:我第一次运行你的代码时,出现了这个 -

追溯(最近的调用最后): 文件“”,第 4 行,位于ValueError:无法将字符串转换为 float :板

好吧,我意识到包含列名的第一行是原因,所以我删除了第一行,将其另存为一个新文件并在该文件上运行代码,它运行得非常好。

但是,如果我确实删除了包含列标识符的第一行,我将无法使用下面 khalid 提到的方法。与此同时,我正在看 Pandas 。

感谢你们所做的一切:)

编辑 4:学习到教训了。 Pandas 很棒。工作完成:)...

最佳答案

一些事情,取决于你想做什么。以下是让它们按列引用的简单方法:

import csv

with open('file.csv','r') as f:
reader = csv.DictReader(f, delimiter=',')
rows = list(reader)

for row in rows:
print row['plate']

如果要将它们转换为 float 或整数,可以使用map。但是,我怀疑你最后想做一些计算,为此最好使用 pandas .

作为额外的好处,pandas 将为您提供一个称为 DataFrame 的二维网格表示。

关于python - 在 Python 中访问 CSV 文件中的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17186893/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com