Sé que puedo cambiar el nombre de las columnas pandas.DataFrame individuales con:
drugInfo.rename(columns = {'col_1': 'col_1_new_name'}, inplace = True)
Pero me gustaría cambiar el nombre de una columna sin saber su nombre (según su índice, aunque sé que los diccionarios no lo tienen). Me gustaría cambiar el nombre de la columna número 1 de esta manera:
drugInfo.rename(columns = {1: 'col_1_new_name'}, inplace = True)
Pero en el DataFrame.columns dict no hay una entrada ‘1’, por lo que no se hace ningún cambio de nombre. ¿Cómo podría lograr esto?
Deberia trabajar:
drugInfo.rename(columns = {list(drugInfo)[1]: 'col_1_new_name'}, inplace = True)
Ejemplo:
In [18]: df = pd.DataFrame({'a':randn(5), 'b':randn(5), 'c':randn(5)}) df Out[18]: abc 0 -1.429509 -0.652116 0.515545 1 0.563148 -0.536554 -1.316155 2 1.310768 -3.041681 -0.704776 3 -1.403204 1.083727 -0.117787 4 -0.040952 0.108155 -0.092292 In [19]: df.rename(columns={list(df)[1]:'col1_new_name'}, inplace=True) df Out[19]: a col1_new_name c 0 -1.429509 -0.652116 0.515545 1 0.563148 -0.536554 -1.316155 2 1.310768 -3.041681 -0.704776 3 -1.403204 1.083727 -0.117787 4 -0.040952 0.108155 -0.092292
Probablemente es más legible indexar en el atributo de columnas de dataframe:
df.rename(columns={df.columns[1]:'col1_new_name'}, inplace=True)
Así que para ti:
drugInfo.rename(columns = {drugInfo.columns[1]: 'col_1_new_name'}, inplace = True)