[Python 3.X] Travailler sur des gros CSV
Bonjour,
J'ai différents "dumps" au format csv sur lesquels je souhaite filtrer uniquement les enregistrements qui m'intéressent.
C'est un fichier avec header du type :
champ1;champ2; champ3;....champn (n=37)
val1;val2; val3,....valn
val1;val2; val3,....valn
val1;val2; val3,....valn
val1;val2; val3,....valn
...
Selon ma (vieille) logique de programmation, j'avais l'habitude de travailler avec des "records", un par un. Globalement, sur les 20 millions d'enregistrement, je souhaite lire le fichier et n'enregistrer, dans un nouveau fichier, que les enregistrement répondant à deux ou trois règles simples du type :
si champ3 <> champ25 alors
si champ 17 == "nnn" alors
enregistrer
sinon
enregistrement suivant
fs
fs
J'ai regardé différentes options, je suis un peu perdu entre les listes, dictionnaires, etc, sachant que je traite les enregistrement un par un. Le fin du fin serait une boite de dialogue avec tkinter me permettant de sélectionner le fichier en entrée et celui en sortie.
Que me conseilleriez vous, les seuls exemples de dictionnaires trouvés ou de traitement de fichiers csv consistant à tout traiter en mémoire ce qui n'est pas possible compte tenu du volume de données à traiter.
J'ai regardé rapidement numpy et pandas, j'ai été plutôt perdu. Je suis aussi plutôt débutant ++ en python.
par avance merci
TGM
[Python 3.X] Travailler sur des gros CSV
Bonjour Tyrtamos,
J'ai regardé la doc en question, mais je ne suis pas certain d'avoir tout compris, entre les listes, les dictionnaires et les tuples.
je vais rester sur les listes "simples".
j'essaie différents trucs. je reviendrai crier "au secours" prochainement ;)
Ou poster mes cochonneries si cela peut servir à quelqu'un.
j'ai pas mal galéré dans le retraitement et la reconversion d'un fichier bibtex, ça ne pourra pas être pire
merci