У меня есть данные в формате с разделителями табуляции, который выглядит как:Slice конкретные символы в CSV с помощью питона
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) , Я решил, что лучший способ сделать это - использовать match
и genfromtxt
в numpy. Этот пример, насколько я получил:
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",
Это работает для первой строки данных, но я с трудом выяснить, как расширить его для каждой строки входного файла.
Должен ли я сделать это функцией и применять ее к каждой строке отдельно или есть ли более питонический способ сделать это?
Все эти ответы были замечательными, но вы получили чек на чистое количество исправлений и исправлений вашего первоначального ответа. Благодаря! – Stedy 2010-12-03 05:37:40