Funzione Pandas DataFrame DataFrame.reindex()

Minahil Noor 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.reindex()
  2. Codici di esempio: DataFrame.reindex()
  3. Codici di esempio: DataFrame.reindex() per reindicizzare le colonne
  4. Codici di esempio: DataFrame.reindex() Metodo per riempire i valori mancanti con fill_value
  5. Codici di esempio: DataFrame.reindex() per riempire i valori mancanti utilizzando il parametro metodo
Funzione Pandas DataFrame DataFrame.reindex()

La funzione Python Pandas DataFrame.reindex() cambia l’indice di un DataFrame. Cambia gli indici sull’asse specificato. I nuovi indici non contengono valori. Fornisce parametri opzionali per inserire questi valori.

Sintassi di pandas.DataFrame.reindex()

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

Parametri

labels È una struttura tipo array che contiene i nomi dei nuovi indici.
index, columns È una struttura tipo array che contiene i nomi dei nuovi indici. Dovrebbe essere specificato utilizzando la parola chiave index o coloumns.
axis È un numero intero o una stringa. Specifica l’asse di destinazione righe o colonne. Può essere 0 o 'index' e 1 o "coloumns".
method Questo parametro specifica il metodo per riempire i valori mancanti nel DataFrame reindicizzato.
Ha quattro possibilità: None, backfill / bfill, pad / ffill, nearest.
Si applica solo se il nostro DataFrame o Series ha una sequenza di un indice crescente o decrescente.
copy Booleano. Per impostazione predefinita, è True. Restituisce un nuovo oggetto.
level È un numero intero o un nome. Corrisponde ai valori di indice su un livello multiindice passato.
fill_value Ha un valore scalare. È il valore per riempire i valori mancanti.
limit È un numero intero. Specifica il limite degli elementi consecutivi riempiendo i valori mancanti.
tolerance Specifica la differenza tra l’originale e le nuove etichette in caso di corrispondenze inesatte.

Ritorno

Restituisce un DataFrame con gli indici modificati.

Codici di esempio: DataFrame.reindex()

Per impostazione predefinita, l’asse è 0, ovvero le righe, quindi le righe verranno reindicizzate.

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)

Il dataframe demo è il seguente.

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

Gli indici in Python iniziano da 0. Reindicizzeremo il nostro DataFrame ei nuovi indici partiranno da 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)

Produzione:

   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

Qui, 5 è un nuovo indice. Quindi, i valori del nuovo indice sono NaN.

Codici di esempio: DataFrame.reindex() per reindicizzare le colonne

Esistono due modi per reindicizzare le colonne. Uno è specificando le etichette con la parola chiave columns e l’altro è utilizzando il parametro dell’asse. La cosa migliore è specificare le etichette con la parola chiave 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)

Produzione:

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

Il vecchio indice viene assegnato con i vecchi valori. I nuovi indici hanno valori NaN.

Potremmo anche reindicizzare le colonne con il parametro 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)

Codici di esempio: DataFrame.reindex() Metodo per riempire i valori mancanti 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)

Produzione:

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

I valori mancanti sono ora riempiti con 0.

Codici di esempio: DataFrame.reindex() per riempire i valori mancanti utilizzando il parametro metodo

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)

Produzione:

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

Il metodo ffill ha riempito i valori mancanti in avanti con l’ultimo valore disponibile.

Articolo correlato - Pandas DataFrame