Índice de redefinição do Pandas DataFrame
- 
          
            Pandas DataFrame reset_index()Método
- 
          
            Redefinir o índice de um DataFrame usando o método pandas.DataFrame.reset_index()
 
Este tutorial explica como podemos repor o índice em Pandas DataFrame utilizando pandas.DataFrame.reset_index(). O método reset_index() define o índice do DataFrame para o índice padrão com números que vão de 0 a (número de linhas em DataFrame-1).
Pandas DataFrame reset_index() Método
    
Sintaxe
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill="")
Redefinir o índice de um DataFrame usando o método pandas.DataFrame.reset_index()
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)
print(student_df)
Resultado:
        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A
Suponha que temos um DataFrame com cinco linhas e quatro colunas, como mostrado na saída. Também temos um array de índices na DataFrame.
Repor Índice de um DataFrame Manter o Índice Inicial de DataFrame como uma Coluna
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)
print("Initial DataFrame:")
print(student_df)
print("")
print("DataFrame after reset_index:")
student_df.reset_index(inplace=True, drop=False)
print(student_df)
Resultado:
Initial DataFrame:
        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A
DataFrame after reset_index:
   index     Name  Age      City Grade
0    501    Alice   17  New York     A
1    502   Steven   20  Portland    B-
2    503  Neesham   18    Boston    B+
3    504    Chris   21   Seattle    A-
4    505    Alice   15    Austin     A
Repõe o índice da DataFrame student_df para o índice padrão. O inplace=True faz a alteração do próprio DataFrame original. Se utilizarmos drop=False, o índice inicial é colocado como uma coluna no DataFrame após a utilização do método reset_index().
Redefinir Índice de um DataFrame Remover o Índice Inicial do DataFrame
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    },
    index=roll_no,
)
print("Initial DataFrame:")
print(student_df)
print("")
print("DataFrame after reset_index:")
student_df.reset_index(inplace=True, drop=True)
print(student_df)
Resultado:
Initial DataFrame:
        Name  Age      City Grade
501    Alice   17  New York     A
502   Steven   20  Portland    B-
503  Neesham   18    Boston    B+
504    Chris   21   Seattle    A-
505    Alice   15    Austin     A
DataFrame after reset_index:
      Name  Age      City Grade
0    Alice   17  New York     A
1   Steven   20  Portland    B-
2  Neesham   18    Boston    B+
3    Chris   21   Seattle    A-
4    Alice   15    Austin     A
Repõe o índice da DataFrame student_df para o índice padrão. Como definimos drop=True no método reset_index(), o índice inicial é descartado a partir do DataFrame.
Redefinir índice de um DataFrame após a eliminação de linhas
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
student_df = pd.DataFrame(
    {
        "Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
        "Age": [17, 20, 18, 21, 15],
        "City": ["New York", "Portland", "Boston", "Seattle", "Austin"],
        "Grade": ["A", "B-", "B+", "A-", "A"],
    }
)
student_df.drop([2, 3], inplace=True)
print("Initial DataFrame:")
print(student_df)
print("")
student_df.reset_index(inplace=True, drop=True)
print("DataFrame after reset_index:")
print(student_df)
Resultado:
Initial DataFrame:
     Name  Age      City Grade
0   Alice   17  New York     A
1  Steven   20  Portland    B-
4   Alice   15    Austin     A
DataFrame after reset_index:
     Name  Age      City Grade
0   Alice   17  New York     A
1  Steven   20  Portland    B-
2   Alice   15    Austin     A
Como podemos ver na saída, temos índices em falta após a eliminação de linhas. Nesses casos, podemos utilizar o método reset_index() para utilizar o índice sem valores em falta.
Se quisermos que o índice inicial seja colocado como coluna da DataFrame, podemos utilizar drop=False no método reset_index().
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn