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

Paolo Di Ieso paolodiieso a libero.it
Mar 16 Maggio 2017 16:31:21 CEST


Ciao a tutti. Ho appena iniziato con Pandas e ho una gran confusione in 
testa, provo a spiegarmi meglio.

In due dataframe ho il contenuto di due file CSV, entrambi con un header 
e qualche decina di colonne. Iterando sulle righe di entrambi voglio 
modificare il 1° file in modo tale che quando un valore della colonna 
"srvid" del 1° file coincide con il valore dell'omonima colonna "srvid" 
del 2° file, nella colonna "srvid" del 1° file metto il valore preso 
dalla colonna "srvname" del 2°. Un esempio:

Situazione iniziale 1° file:
srvid
42
63
63
63
42
42

Situazione iniziale 2° file:
srvid srvname
42    HOTSPOT
43 WiFi 6M
44 WiFi 8M

Situazione 1° file dopo le modifiche:
srvid
HOTSPOT
63
63
63
HOTSPOT
HOTSPOT

Tutti i valori 42 della colonna "srvid" del 1° file sono stati 
sostituiti dal valore "HOTSPOT" trovato in "srvname" del 2° file quando 
l'adiacente "srvid" ha anch'essa valore 42. Ho iniziato scrivendo

df = pd.read_csv(rm_users_in, sep=";",
                  usecols=rm_users_to_o4w_column.keys(),
                  dtype={"zip": object}  # fix value from 50015.0 to 50015
                  )
df2 = pd.read_csv(rm_services_in, sep=";",
                   usecols=rm_services_to_o4w_column.keys()
                   )
for row in df.itertuples():
     for row2 in df2.itertuples():
         if row.srvid == row2.srvid:
             row["srvid"] = row2.srvname

ma dal traceback non credo di essere sulla strada giusta! :-D
M'indicate la direzione giusta?

Grazie mille.
Paolo


Maggiori informazioni sulla lista Python