Reindexación de dataframes

El método pandas.DataFrame.reindex ofrece una funcionalidad semejante a la disponible para series con la particularidad de que, en este caso, podemos reindexar por filas y/o por columnas. Por defecto, este método acepta una secuencia de etiquetas que determinarán qué filas se incluyen y en qué orden (es decir, por defecto la reindexación se aplica al eje 0):

Reindexación de dataframes

En este ejemplo, partimos de un dataframe cuyo índice de filas tiene las etiquetas "a", "b", "c", "d" y "e", y hemos indicado como nuevo índice apenas las etiquetas "d" y "b" (en este orden), y son estas filas (en ese orden) las que se devuelven como resultado.

Este método permite especificar las etiquetas de filas como hemos visto, pasándoselas al método como primer argumento, o con el parámetro index:

Reindexación de dataframes

El resultado, por supuesto, es el mismo. El parámetro columns, por su parte, permite especificar el nuevo índice de columnas:

Reindexación de dataframes

Si utilizamos ambos parámetros al mismo tiempo, imponemos simultáneamente el nuevo índice para filas y columnas:

Reindexación de dataframes

La gestión de etiquetas que no existan en los índices iniciales es la misma que la vista para las series: se añaden y se les asigna el valor NaN:

Reindexación de dataframes

Podemos asignar a los valores inexistentes un valor concreto usando el parámetro fill_value, o podemos aplicar "lógica de relleno" con el parámetro method, permitiéndonos rellenar los valores inexistentes hacia adelante o hacia atrás.

Y, por supuesto, si los nuevos índices contienen los mismos elementos que los índices originales pero en otro orden, el resultado del método será equivalente al original ordenado según el nuevo criterio:

Reindexación de dataframes