Фильтрация файла CSV в python

Я скачал этоCSV-файл, которая создает электронную таблицу информации о генах. Важно то, что вHLA-* столбцы, есть информация о генах. Если ген имеет слишком низкое разрешение, например,DQB1*03 тогда строка должна быть удалена. Если данные имеют слишком высокое разрешение, напримерDQB1*03:02:01тогда:01 тег в конце должен быть удален. Итак, в идеале я хочу, чтобы белки были в форматеDQB1*03:02так что у него есть два уровня разрешения послеDQB1*, Как я могу сказать Python искать эти форматы и игнорировать данные, хранящиеся в них. например

if (csvCell is of format DQB1*03:02:01):
   delete the :01 # but do this in a general format
elif (csvCell is of format DQB1*03):
   delete row
else:
   goto next line

ОБНОВЛЕНИЕ: отредактированный код, на который я ссылался

import csv
import re
import sys

csvdictreader = csv.DictReader(open('mhc.csv','r+b'), delimiter=',')
csvdictwriter = csv.DictWriter(file('mhc_fixed.csv','r+b'), fieldnames=csvdictreader.fieldnames, delimiter=',')
csvdictwriter.writeheader()
targets = [name for name in csvdictreader.fieldnames if name.startswith('HLA-D')]

for rowfields in csvdictreader:
  keep = True
  for field in targets:
    value = rowfields[field]
    if re.match(r'^\w+\*\d\d, value):
      keep = False
      break # quit processing target fields
    elif re.match(r'^(\w+)\*(\d+):(\d+):(\d+):(\d+), value):
      rowfields[field] = re.sub(r'^(\w+)\*(\d+):(\d+):(\d+):(\d+),r'\1*\2:\3', value)
    else: # reduce gene resolution if too high
              # by only keeping first two alles if three are present
      rowfields[field] = re.sub(r'^(\w+)\*(\d+):(\d+):(\d+),r'\1*\2:\3', value)
  if keep:
     csvdictwriter.writerow(rowfields)

Ответы на вопрос(2)

Ваш ответ на вопрос