在 Python 中从 CSV 文件访问列数据

2023-11-29

我有一个包含 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 

with

    z = row
    z.append(z)

将数据保存到数组中。

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

    z.append(float(z))

这给了我一个类型错误。

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

这个 SE 问题最接近回答我的第二个问题 -Python - CSV:具有不同长度行的大文件- 但我不明白。如果你们中有人能在这方面帮助我,我将不胜感激。

编辑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', '1237674648848106129', [...]]。

我应该提到的是,我刚刚开始使用 python,并且我正在学习需要知道的东西!我用在网上找到的一些代码进行即兴创作。

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

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

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

回溯(最近一次调用最后一次): 文件“”,第 4 行,位于 ValueError:无法将字符串转换为浮点:板

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

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

谢谢你们所做的一切:)

编辑4: 学习到教训了。熊猫太棒了。任务完成 :)...


有几件事,取决于你想做什么。这是按列引用它们的简单方法:

import csv

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

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

如果你想将它们转换为浮点数或整数,你可以使用map。但是,我怀疑您最终想要进行一些计算,为此最好使用pandas.

作为额外的好处,pandas会给你一个 2D 网格表示,称为DataFrame你的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中从 CSV 文件访问列数据 的相关文章

随机推荐

  • 在 Java 中运行构造函数代码之前字段是否已初始化?

    谁能解释一下以下程序的输出 我认为构造函数是在实例变量之前初始化的 所以我期望输出是 XZYY class X Y b new Y X System out print X class Y Y System out print Y publ
  • python - 查找用户的“下载”文件夹

    我已经找到了这个问题建议使用os path expanduser path 获取用户的主目录 我想通过 下载 文件夹实现相同的目的 我知道这在 C 中是可能的 但我是 Python 新手 不知道这是否也可能在这里 最好是独立于平台 Wind
  • 使用应用程序脚本在过滤器视图之间切换

    我想创建一个自定义菜单 其中包含可在特定工作表上的过滤器视图之间切换的项目 有什么办法吗 我需要过滤视图 因为需要排序和过滤 但仍保留编辑选项 由于这个事实 过滤器功能不起作用 筛选视图尚不支持应用程序脚本 这是一个旧的功能要求
  • 通过在特定日期范围之间插入其他列来在数据框中创建新列 - Pandas

    我有一个 df 如下所示 数据是这样的 Date y 0 2020 06 14 127 1 2020 06 15 216 2 2020 06 16 4 3 2020 06 17 90 4 2020 06 18 82 5 2020 06 19
  • 使用 Python 和 Regex 查找字符串中的所有中文文本

    今天我需要从一堆字符串中去掉中文 并且正在寻找一个简单的 Python 正则表达式 有什么建议么 Python 2 usr bin env python encoding utf8 import re sample u I am from
  • StreamReader.ReadLine 和 CR

    我在这里很密集吗 StreamReader ReadLine指出 行定义为一系列字符 后跟换行符 n 回车符 r 或回车符后紧跟换行符 r n 那么 为什么这没有按预期工作呢 Server Dim tcpL as New TcpListen
  • 当断言失败时继续 Python 的单元测试

    编辑 切换到一个更好的示例 并澄清为什么这是一个真正的问题 我想用 Python 编写单元测试 当断言失败时继续执行 这样我就可以在单个测试中看到多个失败 例如 class Car object def init self make mod
  • 为什么我以编程方式创建的按钮的样式不同?

    从 Android Studio 中具有空 Activity 的新项目开始 我添加了一个带有单个按钮的线性布局activity main xml
  • iOS Web 应用程序:禁用输入文本字段的自动对焦

    我有一个简单的 iOS Web 应用程序问题 当您创建输入文本字段时 用户单击文本字段 mobile safari 会自动聚焦输入字段 自动将用户单击的输入字段移动到屏幕中央 视觉键盘将画布推到顶部或左侧或任何可以将输入字段居中的空间 好吧
  • ListSelector适用于整个列表

    我有一个带有列表选择器的简单列表 如下所示
  • 尝试安装 Homebrew 时出现库未加载错误 (libidn.11.dylib)

    尝试在 Lion 上安装 Homebrew 当我做 usr bin ruby e curl fsSL https raw github com gist 323731 我收到此错误 dyld Library not loaded opt l
  • 记录 Jenkins 中的更改

    在这里继续我的问题 Jenkins 在外部可执行文件上的构建通过或失败 我的构建过程现在使用 MS Build 从源代码构建 并作为构建过程的一部分执行自定义程序 我在程序中写入控制台的任何内容都将记录在控制台输出中 但是 我还想在用户界面
  • C 将 argv[] 中的字符串分配给 char 数组

    我有以下代码 它从命令行读取文件名并打开该文件 include
  • setcookie,无法修改标头信息 - 标头已发送[重复]

    这个问题在这里已经有答案了 我是PHP新手 刚刚练习PHP setcookie 失败了 http localhost 测试 索引 php
  • 如何将 DNS 条目添加到 Windows 容器的主机文件中?

    我的主机的 IIS 中有一个网站 可以通过以下方式访问http mysite local地址 我还有一个在此主机上运行的 Windows 容器 我正在尝试使用 curl http mysite local 从我的 Windows 容器连接到
  • 使用 NDEF Android 应用程序记录 (AAR) 获取 NFC 标签

    我正在开发 NFC 应用程序 为了启动我的应用程序 我使用了 NDEF 标签 其中包含 AAR NDEF 记录 这很好用 但现在我想直接用应用程序读取标签内容 我怎样才能做到这一点 当我从手机上取下标签并再次触摸它时 它已经可以工作了 但我
  • 映射超类的命名查询

    我试图在映射的超类上声明 NamedQuery 但收到此错误 org hibernate hql ast QuerySyntaxException VoipCall 未映射 select v from VoipCall v where v
  • TinkerPop:添加顶点图 API 与遍历 API

    背景 在其中之一SO posts推荐使用 Traversal API 而非 Graph API 来进行变异 所以我尝试了一些测试 发现 Graph API 似乎更快 我完全相信这个建议 但我试图了解它如何更好 我确实尝试过谷歌搜索 但没有找
  • cout 是同步/线程安全的吗?

    一般来说 我假设流不同步 由用户来执行适当的锁定 但是 做类似的事情cout在标准库中得到特殊待遇 也就是说 如果多个线程正在写入cout他们会腐败吗cout目的 我知道即使同步 您仍然会得到随机交错的输出 但交错是否有保证 也就是说 使用
  • 在 Python 中从 CSV 文件访问列数据

    我有一个包含 A B C D 列和 N 行的 CSV 文件 问题是这些列中的数据长度不同 即有些是 4 5 有些是 4 52 我的问题分为两部分 我如何从 csv 文件访问这些列 我使用此代码来打印 csv 文件的内容并将它们读入数组 im