python - 使用 python 切片 CSV 中的特定字符

标签 python csv numpy

我有制表符分隔格式的数据,如下所示:

0/0:23:-1.03,-7.94,-83.75:69.15    0/1:34:-1.01,-11.24,-127.51:99.00    0/0:74:-1.02,-23.28,-301.81:99.00

我只对每个条目的前 3 个字符感兴趣(即 0/0 和 0/1)。我认为最好的方法是在 numpy 中使用 matchgenfromtxt。这个例子是我所得到的:

import re
csvfile = 'home/python/batch1.hg19.table'
from numpy import genfromtxt
data = genfromtxt(csvfile, delimiter="\t", dtype=None)
for i in data[1]:
    m = re.match('[0-9]/[0-9]', i)
        if m:
        print m.group(0),
        else:
        print "NA",

这适用于数据的第一行,但我很难弄清楚如何为输入文件的每一行扩展它。

我应该将它设为一个函数并将其分别应用于每一行,还是有更 pythonic 的方法来做到这一点?

最佳答案

除非你真的想使用 NumPy,否则试试这个:

file = open('home/python/batch1.hg19.table')
for line in file:
    for cell in line.split('\t'):
        print(cell[:3])

它只是遍历文件的每一行,使用制表符作为分隔符标记该行,然后打印您要查找的文本片段。

关于python - 使用 python 切片 CSV 中的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341405/

相关文章:

algorithm - 在 numpy 的条件函数之前是否有一个保持值?

python - 如何同时使用字典和数组的 for 循环

python - 将数组从 bash 传递到 python 参数

python - 从字符串中提取完整的国家/地区名称并将其作为数据框列

python - 使用 xgboost 的弃用警告

sql - postgresql:在标题上强制引号

powershell - 具有重复列标题的 Import-Csv powershell

python - Tensorflow 对象检测 API 的训练和验证准确性

r - 如何在R中读取HDFS中的文件而不丢失列名和行名

python - 从 3D numpy 像素数组中删除空的 'rows' 和 'columns'