将命名元组的值从字符串转换为整数

2024-03-09

我正在创建一个脚本来将 csv 文件从其列标题读取到一组命名元组中。然后,我将使用这些命名元组来提取满足特定条件的数据行。

我已经计算出输入(如下所示),但在将数据输出到另一个文件之前过滤数据时遇到问题。

import csv
from collections import namedtuple

with open('test_data.csv') as f:
    f_csv = csv.reader(f) #read using csv.reader()
    Base = namedtuple('Base', next(f_csv)) #create namedtuple keys from header row
    for r in f_csv: #for each row in the file
        row = Base(*r) 
        # Process row
        print(row) #print data

我的输入文件的内容如下:

Locus           Total_Depth     Average_Depth_sample    Depth_for_17
chr1:6484996    1030            1030                    1030
chr1:6484997    14              14                      14
chr1:6484998    0               0                       0

它们是从我的代码中打印出来的,如下所示:

基数(轨迹='chr1:6484996',Total_Depth='1030', Average_Depth_sample='1030',Depth_for_17='1030') 基数(轨迹='chr1:6484997',Total_Depth='14', Average_Depth_sample='14',Depth_for_17='14') 基础(轨迹='chr1:6484998',Total_Depth='0',Average_Depth_sample='0', Depth_for_17='0')

我希望能够仅提取 Total_Depth 大于 15 的记录。

直觉上我尝试了以下功能:

if Base.Total_Depth >= 15 :
    print row

然而,这仅打印最后一行数据(来自上面的输出表)。我认为问题是双重的。据我所知,我不会将命名元组存储在任何地方以供以后引用。其次,数字是以字符串格式而不是整数读取的。

首先,如果我需要将命名元组存储在某个地方,有人可以纠正我吗?

其次,如何将字符串值转换为整数?或者这是不可能的,因为命名元组是不可变的。

Thanks!

I 以前问过类似的问题 https://stackoverflow.com/questions/17238567/returning-a-row-from-a-csv-if-specified-value-within-the-row-matches-condition关于字典,但现在想使用命名元组代替。 :)


将您的价值观映射到int创建命名元组实例时:

row = Base(r[0], *map(int, r[1:])) 

这保持了r[0]value 作为字符串,并将其余值映射到int().

This does需要了解 CSV 列,因为此处硬编码了哪些列可以转换为整数。

Demo:

>>> from collections import namedtuple
>>> Base = namedtuple('Base', ['Locus', 'Total_Depth', 'Average_Depth_sample', 'Depth_for_17'])
>>> r = ['chr1:6484996', '1030', '1030', '1030']
>>> Base(r[0], *map(int, r[1:]))
Base(Locus='chr1:6484996', Total_Depth=1030, Average_Depth_sample=1030, Depth_for_17=1030)

请注意,您应该针对行进行测试,而不是针对Base class:

if row.Total_Depth >= 15:

在循环内,或在收集行的新循环中。

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

将命名元组的值从字符串转换为整数 的相关文章

随机推荐

  • 如何在Sqlite3中将数组存储在一列中?

    有没有办法将整数数组存储在表的一列中 我想要这样的o p ident value count 563 0 10 0 0 1 100 2 200 3 300 4 400 5 500 6 我已经通过 postgres 实现了这
  • 为什么 SSL 握手会出现“无法生成 DH 密钥对”异常?

    当我与某些 IRC 服务器 但不是其他服务器 可能是由于服务器的首选加密方法 建立 SSL 连接时 出现以下异常 Caused by java lang RuntimeException Could not generate DH keyp
  • 使用 CSS 为黑色图标赋予另一种颜色

    我看到一些应用程序尽管包含黑色图标 但有些应用程序如何使用 CSS 将图标转换为不同的颜色 我似乎无法重复这个过程 这是我的 back css 文件 dashboard buttons a width 80px height 80px bo
  • Solr 搜索查询返回全头异常

    我正在 C 应用程序中调用托管在其他计算机上的远程 solr 搜索 现在 由于我的查询长度变得太大 因此搜索引擎返回全头错误 我无法减少查询长度 所以我只是想知道我可以提出同样的邮寄请求吗 我该怎么做这个 请建议我 谢谢 看起来您遇到了 j
  • 在回调中使用yield?

    我有一个函数y 这应该会产生一些记录 然而 该函数在回调中获取记录 并将其传递给另一个函数d 访问数据 d 不返回或产生任何东西 如果其他功能 这种模式是否可能d 接受回调被认为是黑匣子 替代设计是什么 function y d funct
  • 单元测试、NUnit 还是 Visual Studio? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在使用 Visual studio 有时是 resharper 来运行我的单元测试 我听说过 NUnit 但我对它了解不多 我应该关心它吗
  • 在 kubernetes pod 中获取日志的选项

    kubernetes pod 中的开发人员日志很少 获取日志供开发人员查看的最佳方法是什么 我们可以使用什么特定的工具 我可以选择graylog 但不确定是否可以对其进行定制以使开发人员登录到其中 最基本的方法是简单地使用kubectl l
  • Python:连接(或克隆)一个 numpy 数组 N 次

    我想通过克隆 Mx1 ndarray N 次来创建 MxN numpy 数组 有没有一种有效的 pythonic 方法来代替循环 顺便说一句 以下方法对我不起作用 X 是我的 Mx1 数组 numpy concatenate X numpy
  • 文件读取:feof() 用于二进制文件

    我正在读取一个二进制文件 当它到达终点时 看来它是由 feof 函数终止的 是因为二进制文件没有EOF字符吗 如果是这样我该如何解决它 目前我的代码正在使用 while 循环 while feof f 当它到达文件末尾位置 5526900
  • 为什么 lambda 的大小为 1 个字节?

    我正在使用 C 中的一些 lambda 表达式的内存 但我对它们的大小有点困惑 这是我的测试代码 include
  • 如何将 MemoryStream 中的 PDF 发送到 .Net 中的打印机?

    我使用 iTextSharp 在内存中创建了一个 PDF 并将其包含在 MemoryStream 中 我现在需要将 MemoryStream PDF 转换为打印机可以理解的内容 我过去曾使用报表服务器将页面呈现为打印机格式 但我无法将其用于
  • 从PowerShell 5.1到7.2.5 Get-Service -ComputerName不再存在,那么我如何获取计算机名称?

    我在用着Get Service显示过滤列表 它在 5 1 中运行良好 这就是我在 5 1 中的工作方式 Get Service DisplayName displayName ComputerName computers Sort Obje
  • 没有“提醒”的通知

    我正在尝试创建一个具有高优先级的通知 聊天应用程序 但我的客户要求它不会有 抬头 视图 我尝试过创建一个空布局RemoteViews设置为Notification headsUpContentView但还是什么都没有 这是我尝试过的 Int
  • 背景附件:修复了 translateX(0) 的断裂问题

    我有一个具有固定背景的滚动元素 my element background url foo png no repeat right bottom background attachment fixed 效果很好 通常情况下 但是 如果我对其
  • asp.net mvc 4通过按钮从控制器调用方法

    在我的控制器中 我有类 AccountController 并且在我有这个方法 HttpPost ValidateAntiForgeryToken public ActionResult LogOff WebSecurity Logout
  • Elasticsearch with Tire:具有多个单词的edgeNgram

    假设我有 5 部影片 无太阳 Sansa 这也是吗 索尔 古德 唯一的幸存者 我想实现一个具有以下预期行为的自动完成搜索字段 Sans gt 无太阳 珊莎 无忧无虑 gt 无太阳 所以 gt 这也是 索尔 古德 唯一幸存者 也是 gt 这也
  • ASP.NET MVC 路由和经典 ASP 主页(VBScript,不是 Web 表单)可以很好地协同工作吗?

    我们网站的根目录中有一个经典的 VBScript default asp 页面 这是一个沉重的遗留页面 现在无法选择对其进行转换 我们还有一个新的 ASP NET MVC 2 应用程序 我们希望将其托管在同一站点上 实际上 一切都配合得很好
  • 是否可以重命名带有依赖项的 Maven jar?

    我目前正在使用 jar with dependencies 程序集来创建这样的 jar 不过我的jar名字有点长 由于 AS400 上的 RPG 程序正在使用此 jar 因此我想缩短它以使这些开发人员的生活更轻松一些 但是 除了手动之外 我
  • Golang Gin“c.Param未定义(类型*gin.Context没有字段或方法Param)”

    我尝试使用 Golang 框架 Gin https github com gin gonic gin https github com gin gonic gin 我从官方github复制了示例代码 就像这样 package main im
  • 将命名元组的值从字符串转换为整数

    我正在创建一个脚本来将 csv 文件从其列标题读取到一组命名元组中 然后 我将使用这些命名元组来提取满足特定条件的数据行 我已经计算出输入 如下所示 但在将数据输出到另一个文件之前过滤数据时遇到问题 import csv from coll