De retour d'une ligne d'un fichier CSV, si la valeur spécifiée dans la ligne correspond à condition
Ahoy, je suis en train d'écrire un script Python pour filtrer quelques gros fichiers CSV.
Je veux seulement garder les lignes qui répondent à mes critères.
Mon entrée est un fichier CSV dans le format suivant
Locus Total_Depth Average_Depth_sample Depth_for_17 chr1:6484996 1030 1030 1030 chr1:6484997 14 14 14 chr1:6484998 0 0 0
Je veux revenir sur les lignes où la Total_Depth est de 0.
J'ai suivi cette réponse pour lire les données. Mais je suis coincé à essayer de l'analyser sur les lignes et tirez les lignes qui correspondent à mon état.
Voici le code que j'ai pour l'instant:
import csv
f = open("file path", 'rb')
reader = csv.reader(f) #reader object which iterates over a csv file(f)
headers = reader.next() #assign the first row to the headers variable
column = {} #list of columns
for h in headers: #for each header
column[h] = []
for row in reader: #for each row in the reader object
for h, v in zip(headers, row): #combine header names with row values (v) in a series of tuples
column[h].append(v) #append each value to the relevant column
Je comprends que mes données sont maintenant dans un format du dictionnaire, et je veux filtre sur la base de la "Total_Depth" la clé, mais je ne sais pas comment faire. Je vise à utiliser un if pour sélectionner les lignes pertinentes, mais vous ne savez pas comment faire avec le dictionnaire de la structure.
Tout conseil serait grandement apprécié. SB 🙂
Vous devez vous connecter pour publier un commentaire.
Utiliser compréhension de liste.
DictReader
Si vous stockez le résultat complet de zip, vous pouvez vérifier l'en-tête approprié avant de l'affecter:
Le dictionnaire de listes que vous utilisez rend les opérations de ligne assez difficile parce que vous avez à jouer avec C parallèle des listes. namedtuples sont un moyen beaucoup plus pratique pour collecter et exploiter des données tabulaires.
Autres réponses satisfaire exactement le problème que vous avez. À l'aide d'un plus conviviale structure de données va les aider avec les problèmes que vous avez de demain.