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

Paolo Di Ieso paolodiieso a libero.it
Mar 16 Maggio 2017 18:50:48 CEST


La stanchezza, ero sicuro di aver creato ex-novo l'email. Riprovo come 
consigliato da Gollum! ;)

Dicevo che sono alle prime armi con Pandas e ho questo problema: 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 capisco di non essere sulla strada giusta. Mi date una 
mano a tornare sulla retta via?

Grazie mille.
Paolo


Maggiori informazioni sulla lista Python