[Python] Modificare i valori di una colonna di un file csv

Paolo Di Ieso paolodiieso a libero.it
Gio 18 Maggio 2017 10:48:08 CEST


Il 16/05/2017 19:19, Federico Cerchiari ha scritto:
> Ciao Paolo,
> non sono un esperto di Pandas, ma se i tuoi file non sono troppo 
> grandi puoi farne a meno ed utilizzare il modulo csv:
>
> import csv
> # Leggi i due file
> with open('file1.csv', 'rb') as f1:
>     with open('file2.csv', 'rb') as f2:
>         # Dal secondo crei un dizionario di mapping
>         mapping = {row[0]: row[1] for row in csv.reader(f2, 
> delimiter=' ')}
>          # Dal primo estrai le righe e sostituisci i valori, se non è 
> presente il valore nel secondo file, hai come fallback il valore originale
>         result = [mapping.get(row[0], row[0]) for row in 
> csv.reader(f1, delimiter=' ')]
>
> # Salvi nel primo file quello che hai ottenuto
> with open('file1.csv', 'wb') as f1:
>     csv.writer(f1).writerows(result)

Ciao Federico,
bella l'idea del mapping, non ci avevo pensato, e utilizzando un 
DictReader potrei indirizzare per header della colonna dato che nel csv 
reale dove c'e ne sono alcune decine la loro posizione non è garantita.

Grazie per i suggerimenti! :)
Paolo


Maggiori informazioni sulla lista Python