繁体   English   中英

csv读取列和行

[英]csv read columns and rows

好的,所以我在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. 在每一行上(即每行仅复制1-3)
  2. 在每个片段的每个重复列上(即,来自肽段1的replicate1和来自片段1的replicate1,对于replicate2和3相同)
  3. 在每个复制列的每个基因上(即与(2)相同,但使用基因代替片段)

数据文件都具有相同的列,但是行(即片段/肽/基因的数量)不同,因此我必须在不指定行号的情况下读取数据。 本质上,我需要的是每一行,每个片段和每个基因的统计信息(变异系数)。

跨行的变体仅使用三个重复项(总是一行中有三个值),当然很容易获得。 跨片段和跨基因的变体都首先计算统计信息,以便使用每个适用的复制品1,然后每个复制品2,然后复制品3(即来自未知行数的未知数量的值)的第一统计信息,然后使用先前的值进行相同的统计信息计算(即始终是三个值)。

我有一个几乎可以执行此操作的脚本,但是它很长,而且(我认为)过于复杂。 我基本上读取了文件3次,每次以描述的不同方式收集数据,通常是在列表中,有时在numpy.arrays中。

本质上,我的问题是关于如何有效地以不同方式(在速度方面和“更少代码”方面)以最佳方式最佳地读取数据。 我试图找到类似的问题,但无济于事。 对此方法的任何提示将不胜感激,并在此先感谢!

我会去numpy.loadtxt

import numpy as np

data = np.loadtxt(open('myfile.csv', 'rb'), delimiter=',')

# 1 Access all rows
for row in data:
    print row

# Get all data in column 2 and 3
print data[:, (2,3)]

我不确定您在第2点和第3点中提出的要求。您能提供样本输入和预期输出吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM