Pandas DataFrame DataFrame.reindex() Função

Minahil Noor 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.reindex()
  2. Códigos de exemplo: DataFrame.reindex()
  3. Códigos de exemplo: DataFrame.reindex() para Reindexar as Colunas
  4. Códigos de exemplo: DataFrame.reindex() Método para preencher os valores em falta com fill_value
  5. Códigos de exemplo: DataFrame.reindex() para preencher os valores em falta utilizando o parâmetro method
Pandas DataFrame DataFrame.reindex() Função

Python Pandas DataFrame.reindex() função altera o índice de um DataFrame. Ela altera os índices sobre o eixo especificado. Os novos índices não contêm valores. Ele fornece parâmetros opcionais para preencher estes valores.

Sintaxe de pandas.DataFrame.reindex()

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

Parâmetros

labels É uma estrutura array-like que contém os nomes dos novos índices.
index, columns É uma estrutura array-like que contém os nomes dos novos índices. Deve ser especificada utilizando a palavra-chave index ou columns.
axis É um inteiro ou um string. Ele informa sobre o eixo alvo, seja linhas ou colunas. Pode ser 0 ou index e 1 ou columns.
method Este parâmetro especifica o método para preencher os valores em falta no DataFrame reindexado.
Tem quatro possibilidades: None, backfill/bfill, pad/ffill, nearest.
Apenas se aplica se nosso DataFrame ou Series tiver uma seqüência de um índice crescente ou decrescente.
copy Booleano. Por padrão, é True. Ele retorna um novo objeto.
level É um número inteiro ou um nome. Corresponde a valores de índice em um nível de índice múltiplo passado.
fill_value Tem um valor de scalar. É o valor para preencher os valores em falta.
limit É um inteiro. Ele informa sobre o limite dos elementos consecutivos enquanto preenche os valores em falta.
tolerance Ele informa sobre a diferença entre os rótulos originais e os novos no caso de correspondências imprecisas.

Retornar

Ele retorna um DataFrame com os índices alterados.

Códigos de exemplo: DataFrame.reindex()

Por padrão, o eixo é 0, ou seja, linhas, portanto, as linhas serão 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)

O DataFrame demo é o seguinte.

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

Os índices em Python começam a partir de 0. Nós reindexaremos nosso DataFrame e os novos índices começarão a partir de 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

Aqui, 5 é um novo índice. Portanto, os valores do novo índice são NaN.

Códigos de exemplo: DataFrame.reindex() para Reindexar as Colunas

Há duas maneiras de reindexar as colunas. Uma é especificando etiquetas com a palavra-chave columns e a outra é utilizando o parâmetro do eixo. A melhor é especificar os rótulos com a palavra-chave 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

O índice antigo é atribuído com os valores antigos. Os novos índices têm valores de NaN.

Poderíamos também reindexar as colunas com o 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 exemplo: DataFrame.reindex() Método para preencher os valores em falta com 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

Os valores em falta são agora preenchidos com 0.

Códigos de exemplo: DataFrame.reindex() para preencher os valores em falta utilizando o 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

O método ffill preencheu os valores em falta com o último valor disponível.

Artigo relacionado - Pandas DataFrame