【发布时间】:2014-01-05 14:19:24
【问题描述】:
好的,所以我在 csv 文件中有一些数据,大致如下:
[fragment1, peptide1, gene1, replicate1, replicate2, replicate3]
[fragment1, peptide2, gene1, replicate1, replicate2, replicate3]
[fragment2, peptide1, gene2, replicate1, replicate2, replicate3]
[fragment2, peptide2, gene2, replicate1, replicate2, replicate3]
[fragment3, peptide1, gene2, replicate1, replicate2, replicate3]
问题是——我需要以几种不同的方式使用这些数据(三个重复):
- 在每一行上(即每行只复制 1-3 个)
- 在每个片段的每个复制列上(即从肽段 1 复制 1 和从片段 1 复制 2,复制 2 和 3 相同)
- 在每个基因的每个重复列上(即与 (2) 相同,但使用基因而不是片段
数据文件都有相同的列,但行(即片段/肽/基因的数量)不同,所以我必须在不指定行号的情况下读取数据。本质上,我需要的是每一行、每个片段和每个基因的统计数据(变异系数)。
跨行的变体只使用三个重复(总是一行中的三个值),当然很容易获得。跨片段和跨基因的变体首先计算统计数据,以使用每个适用的复制 1、每个复制 2、然后复制 3 的第一个统计数据(即来自未知行数的未知数量的值),然后使用之前的值进行相同的统计计算(即总是三个值)。
我几乎有一个脚本可以做到这一点,但它很长并且(我认为)过于复杂。我基本上读了三遍文件,每次都以所描述的不同方式收集数据,特别是在列表中,有时在 numpy.arrays 中。
本质上,我的问题是关于如何以不同的方式有效地最好地读取数据,包括速度方面和“更少代码”方面。我试图找到类似的问题,但无济于事。任何有关如何执行此操作的提示将不胜感激,并在此先感谢!
【问题讨论】:
-
这个问题似乎离题了,因为它更适合codereview.stackexchange.com
-
你能用pandas吗?我认为 pandas 非常适合这种数据。
-
非常感谢!我会检查 Pandas,我也会询问 codereview - 我什至不知道它存在!
标签: csv data-structures python-3.x numpy