Hola, tengo el siguiente marco de datos y me gustaría cambiar el nombre de la columna.

    0   1   2   3   4   5   6   7   8   9
Hollande    35  29  68  88  82  74  47  26  12  4
Rues-Basses-Fusterie    0   0   8   7   5   4   8   1   0   0 

En lugar de tener 0 1 2, me gustaría obtener un rango como ese:

    0-9  10-19  20-29
Hollande    35  29  68  88  82  74  47  26  12  4
Rues-Basses-Fusterie    0   0   8   7   5   4   8   1   0   0 

Gracias por ayudarme :)

0
Dodo3 6 oct. 2019 a las 19:46

3 respuestas

La mejor respuesta

Si desea cambiar el nombre de todas las columnas en el marco de datos df, como señaló @RamWill, es mejor usar el método de cambio de nombre, con una función anónima:

df.rename(columns=lambda x: f"{int(x) * 10}-{int(x) * 10 + 9}")

También puede agregar el argumento inplace=True, lo que significa que el marco de datos original se modifica y no se crea ninguna copia.

Las nuevas columnas:

> df.columns                                                                                
Index(['0-9', '10-19', '20-29', '30-39', '40-49', ...], dtype='object')
1
natka_m 7 oct. 2019 a las 11:21

Si desea cambiar el nombre de todas las columnas de la manera que mostró solo o las tres primeras (pero no desea cambiar el número de columnas), puede hacer algo como esto suponiendo que su marco de datos se llame yourDataFrame,

data_top = yourDataFrame.columns
newcols = []
for a in data_top.astype(int):
    newcols.append(str(a*10) + '-' + str(a*10+9))
yourDataFrame.columns = newcols

Con este código, puede cambiar el nombre de las columnas de esa manera para muchos marcos de datos de pandas independientemente del número de columnas que tengan.

0
myradio 6 oct. 2019 a las 17:26

Esto se explica en la documentación. https://pandas.pydata.org/ pandas-docs / stable / reference / api / pandas.DataFrame.rename.html

En tu ejemplo podrías hacer

df.rename(columns={"0": "0-9", "1": "10-19" ... , "9": "90-99"})
1
RamWill 6 oct. 2019 a las 17:00
58259355