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

Giovanni Porcari giovanni.porcari a softwell.it
Mar 16 Maggio 2017 18:56:22 CEST


> Il giorno 16 mag 2017, alle ore 18:50, Paolo Di Ieso <paolodiieso a libero.it> ha scritto:
> 
> 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?

Mi pare che tu voglia fare una join basandoti sulle due colonne 'srvid'.

Non è che puoi usare il comando join di pandas ?
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.join.html

Se ho frainteso perdonami :)


Ciao
G


> 
> Grazie mille.
> Paolo
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python



Maggiori informazioni sulla lista Python