Pandas DataFrame DataFrame.set_index() Função
-
Sintaxe de
pandas.DataFrame.set_index()
Método: -
Códigos de exemplo: definir o índice Pandas DataFrame com o método Pandas
DataFrame.set_index()
-
Códigos de exemplo: Set
drop=False
in PandasDataFrame.set_index()
Método -
Códigos de exemplo: defina
inplace = True
no método PandasDataFrame.set_index
-
Códigos de exemplo: Coluna de índice múltiplo utilizando Pandas
DataFrame.set_index()
Método -
Códigos de exemplo: Pandas
Dataframe.set_index()
Comportamento quando averify_integrity
éTrue
O método pandas.DataFrame.set_index()
pode ser utilizado para definir arrays ou colunas de comprimento apropriado como um índice de DataFrame, mesmo após a criação do DataFrame. O novo índice set_index pode substituir o índice existente ou também pode ser expandido sobre o existente.
Sintaxe de pandas.DataFrame.set_index()
Método:
DataFrame.set_index(
keys, drop=True, append=False, inplace=False, verify_integrity=False
)
Parâmetros
keys |
coluna ou lista de colunas a serem definidas como índice |
drop |
Booleano. O valor padrão é True , que apaga a coluna a ser definida como índice |
append |
Booleano. O valor padrão é False , e especifica se as colunas devem ser anexadas ao índice existente. |
inplace |
Booleano. Se True , modificar o DataFrame de chamada no local |
verify_integrity |
Booleano. Se True , aumentar o ValueError ao criar um índice com duplicatas. O valor padrão é False . |
Retornar
Se inplace
for True
, ele retorna um objeto DataFrame
com coluna de índice modificada; caso contrário, None
.
Códigos de exemplo: definir o índice Pandas DataFrame com o método Pandas DataFrame.set_index()
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list,
columns = ['Name',
'Price',
'In_Stock',
'Supplier'])
print(df)
df_modified=df.set_index("Name")
print(df_modified)
Resultado:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
4 Pineapple 64 No XYZ
5 Kiwi 84 Yes XYZ
Price In_Stock Supplier
Name
Orange 34 Yes ABC
Mango 24 No ABC
banana 14 No ABC
Apple 44 Yes XYZ
Pineapple 64 No XYZ
Kiwi 84 Yes XYZ
O Dataframe
original tem o intervalo de números como coluna de índice padrão, e em modified_df
, definimos a coluna Name
como o índice utilizando o método set_index()
.
Códigos de exemplo: Set drop=False
in Pandas DataFrame.set_index()
Método
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list,
columns = ['Name',
'Price',
'In_Stock',
'Supplier'])
print(df)
df_modified=df.set_index("Name",drop=False)
print(df_modified)
Resultado:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
Name Price In_Stock Supplier
Name
Orange Orange 34 Yes ABC
Mango Mango 24 No ABC
banana banana 14 No ABC
Apple Apple 44 Yes XYZ
Se definirmos drop=False
no método set_index
do dataframe, a coluna Name
ainda permanece como uma coluna no Dataframe
mesmo depois de ser definida como a coluna index
.
Códigos de exemplo: defina inplace = True
no método Pandas DataFrame.set_index
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list, columns = ['Name' , 'Price', 'In_Stock',"Supplier"])
print("Before Setting Index:")
print(df)
df.set_index("Name",inplace=True)
print("After Setting Index:")
print(df)
Resultado:
Before Setting Index:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
After Setting Index:
Price In_Stock Supplier
Name
Orange 34 Yes ABC
Mango 24 No ABC
banana 14 No ABC
Apple 44 Yes XYZ
Se definirmos inplace=True
no método set_index()
, o chamador dataFrame
será modificado no local.
Códigos de exemplo: Coluna de índice múltiplo utilizando Pandas DataFrame.set_index()
Método
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list, columns = ['Name' , 'Price', 'In_Stock',"Supplier"])
print("Before Setting Index:")
print(df)
df.set_index("Name",append=True,inplace=True,drop=False)
print("After Setting Index:")
print(df)
Resultado:
Before Setting Index:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
After Setting Index:
Name Price In_Stock Supplier
Name
0 Orange Orange 34 Yes ABC
1 Mango Mango 24 No ABC
2 banana banana 14 No ABC
3 Apple Apple 44 Yes XYZ
Se definirmos append=True
no método set_index
, ele anexa a coluna de índice recém-definida ao índice existente e tem várias colunas de índice para o único DataFrame.
Códigos de exemplo: Pandas Dataframe.set_index()
Comportamento quando a verify_integrity
é True
import pandas as pd
fruit_list = [
("Orange", 34, "Yes", "ABC"),
("Mango", 24, "No", "ABC"),
("Apple", 14, "No", "ABC"),
("Apple", 44, "Yes", "XYZ"),
]
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "In_Stock", "Supplier"])
df_modified = df.set_index("Name", verify_integrity=True)
print(df_modified)
Resultado:
Traceback (most recent call last):
.....line 3920, in set_index
dup=duplicates))
ValueError: Index has duplicate keys: Index(['Apple'], dtype='object', name='Name')
Aumenta o ValueError
porque o índice tem chaves duplicadas - Apple
. Ele tem duas Apple
na coluna que está definida para ser o índice; portanto, ele levanta um erro se verify_integrity
estiver definida para ser True
no método set_index()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn