Esto parece bastante obvio, pero parece que no puedo entender cómo convertir un índice de marco de datos en una columna.
Por ejemplo:
df=
gi ptt_loc
0 384444683 593
1 384444684 594
2 384444686 596
A,
df=
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
df.reset_index(level=df.index.names, inplace=True)
uno se puede convertir un índice múltiple entero dado en columnasdf.reset_index()
índice múltiple completo, simplemente use , que mueve la totalidad del índice a las columnas (una columna por nivel) y crea un índice int de 0 a len (df) -1df['index1'] = df.index
devuelve una advertencia: "Se está intentando establecer un valor en una copia de un segmento de un DataFrame". Utilice la función df.assign () en su lugar, como se muestra a continuación.Para MultiIndex puede extraer su subíndice usando
donde
si_name
es el nombre del subíndice.fuente
Para proporcionar un poco más de claridad, echemos un vistazo a un DataFrame con dos niveles en su índice (un MultiIndex).
El
reset_index
método, llamado con los parámetros predeterminados, convierte todos los niveles de índice en columnas y utiliza unRangeIndex
índice simple como nuevo.Use el
level
parámetro para controlar qué niveles de índice se convierten en columnas. Si es posible, use el nombre del nivel, que es más explícito. Si no hay nombres de nivel, puede referirse a cada nivel por su ubicación entera, que comienza en 0 desde el exterior. Puede usar un valor escalar aquí o una lista de todos los índices que desea restablecer.En el raro caso de que desee conservar el índice y convertirlo en una columna, puede hacer lo siguiente:
fuente
rename_axis
+reset_index
Primero puede cambiar el nombre de su índice a una etiqueta deseada, luego elevar a una serie:
Esto también funciona para
MultiIndex
marcos de datos:fuente
Si desea usar el
reset_index
método y también preservar su índice existente, debe usar:o para cambiarlo en su lugar:
Por ejemplo:
Y si desea deshacerse de la etiqueta de índice, puede hacer lo siguiente:
fuente
fuente
Una forma muy sencilla de hacerlo es usar el método reset_index (). Para un marco de datos df, use el código a continuación:
De esta forma, el índice se convertirá en una columna, y al usar inplace como True, se convertirá en un cambio permanente.
fuente