Función Pandas DataFrame DataFrame.reindex()

Minahil Noor 30 enero 2023
  1. La sintaxis de pandas.DataFrame.reindex()
  2. Códigos de ejemplo: DataFrame.reindex()
  3. Códigos de ejemplo: DataFrame.reindex() para reindexar las columnas
  4. Códigos de ejemplo: DataFrame.reindex() Método para llenar los valores que faltan con fill_value
  5. Códigos de ejemplo: DataFrame.reindex() para llenar los valores faltantes usando el parámetro method
Función Pandas DataFrame DataFrame.reindex()

La función Python Pandas DataFrame.reindex() cambia el índice de un DataFrame. Cambia los índices sobre el eje especificado. Los nuevos índices no contienen valores. Proporciona parámetros opcionales para rellenar estos valores.

La sintaxis de pandas.DataFrame.reindex()

DataFrame.dropna(
    labels, index, columns, axis, method, copy, level, fill_value, limit, tolerance
)

Parámetros

labels Es una estructura tipo matriz que contiene los nombres de los nuevos índices.
index, columns Es una estructura tipo matriz que contiene los nombres de los nuevos índices. Debe ser especificada usando la palabra clave index o fila.
axis Es un entero o una cadena de caracteres. Dice sobre el eje objetivo ya sea filas o columnas. Puede ser 0 o index y 1 o columns.
method Este parámetro especifica el método para rellenar los valores que faltan en el reindexado DataFrame.
Tiene cuatro posibilidades: None, backfill/bfill, pad/ffill, nearest. <Sólo se aplica si nuestro DataFrame o Series tiene una secuencia de un índice creciente o decreciente.
copy Booleano. Por defecto, es True. Devuelve un nuevo objeto.
level Es un número entero o un nombre. Coincide con los valores de los índices en un nivel de multiíndice pasado.
fill_value Tiene un valor scalar. Es el valor para llenar los valores que faltan.
limit Es un entero. Habla del límite de los elementos consecutivos mientras llena los valores que faltan.
tolerance Habla de la diferencia entre la etiqueta original y la nueva en caso de coincidencias inexactas.

Retorna

Devuelve un DataFrame con los índices cambiados.

Códigos de ejemplo: DataFrame.reindex()

Por defecto, el eje es 0 es decir, filas, por lo que las filas serán reindexadas.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)

El DataFrame de demostración es el siguiente.

   Attendance    Name  Obtained Marks
0          60  Olivia              56
1         100    John              75
2          80   Laura              82
3          75     Ben              64
4          95   Kevin              67

Los índices en Python comienzan en 0. Reindexaremos nuestro DataFrame y los nuevos índices comenzarán en 1.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex([1, 2, 3, 4, 5])
print(dataframe1)

Resultado:

   Attendance   Name  Obtained Marks
1       100.0   John            75.0
2        80.0  Laura            82.0
3        75.0    Ben            64.0
4        95.0  Kevin            67.0
5         NaN    NaN             NaN

Aquí, 5 es un nuevo índice. Por lo tanto, los valores del nuevo índice son NaN.

Códigos de ejemplo: DataFrame.reindex() para reindexar las columnas

Hay dos formas de reindexar las columnas. Una es especificando etiquetas con la palabra clave columns y la otra es usando el parámetro del eje. La mejor es especificar las etiquetas con la palabra clave columns.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex(columns=["Presents", "Name", "Marks"])

print(dataframe1)

Resultado:

   Presents    Name  Marks
0       NaN  Olivia    NaN
1       NaN    John    NaN
2       NaN   Laura    NaN
3       NaN     Ben    NaN
4       NaN   Kevin    NaN

El índice antiguo se asigna con los valores antiguos. Los nuevos índices tienen valores NaN.

También podríamos reindexar las columnas con el parámetro axis.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex(["Presents", "Name", "Marks"], axis="columns")

print(dataframe1)

Códigos de ejemplo: DataFrame.reindex() Método para llenar los valores que faltan con fill_value

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], fill_value=0)
print(dataframe1)

Resultado:

   Attendance   Name  Obtained Marks
1         100   John              75
2          80  Laura              82
3          75    Ben              64
4          95  Kevin              67
5           0      0               0

Los valores que faltaban se rellenan ahora con 0.

Códigos de ejemplo: DataFrame.reindex() para llenar los valores faltantes usando el parámetro method

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], method="ffill")
print(dataframe1)

Resultado:

 Attendance   Name  Obtained Marks
1         100   John              75
2          80  Laura              82
3          75    Ben              64
4          95  Kevin              67
5          95  Kevin              67

El método ffill ha llenado los valores faltantes de adelante con el último valor disponible.

Artículo relacionado - Pandas DataFrame