[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