Modifica dei nomi di più colonne ma non di tutti: Pandas Python

2022-07-29 13:30:09

Vorrei sapere se esiste una funzione per modificare nomi di colonne specifici ma senza selezionare un nome specifico o senza modificarli tutti.

Ho il codice:

df=df.rename(columns = {'nameofacolumn':'newname'})

Ma con esso devo cambiarli manualmente scrivendo ogni nome. Anche per cambiarli tutti ho

df = df.columns['name1','name2','etc']

Vorrei avere una funzione per cambiare le colonne 1 e 3 senza scrivere i loro nomi solo indicando la loro posizione.

- Antonio López Ruiz

Source
Risposta


32
  • diciamo di avere un dizionario dei nuovi nomi delle colonne e il nome della colonna che dovrebbero sostituire:

    df.rename(columns={'old_col':'new_col', 'old_col_2':'new_col_2'}, inplace=True)
    

    Ma se non ce l'hai e hai solo gli indici, puoi farlo:

    column_indices = [1,4,5,6]
    new_names = ['a','b','c','d']
    old_names = df.columns[column_indices]
    df.rename(columns=dict(zip(old_names, new_names)), inplace=True)