Función Pandas DataFrame DataFrame.set_index()
-
Sintaxis del método
pandas.DataFrame.set_index()
: -
Códigos de ejemplo: Establece el índice del DataFrame de Pandas con el método
DataFrame.set_index()
de Pandas -
Códigos de ejemplo: Establece
drop=False
en elDataFrame.set_index()
método de Pandas -
Códigos de ejemplo: Establecer
inplace=True
en el métodoDataFrame.set_index
de Pandas -
Códigos de ejemplo: Establecer una columna de índice múltiple usando el método
DataFrame.set_index()
de Pandas -
Códigos de ejemplo: Pandas
Dataframe.set_index()
Comportamiento cuandoverify_integrity
esTrue
El método pandas.DataFrame.set_index()
se puede utilizar para establecer matrices o columnas de longitud apropiada como índice del DataFrame incluso después de la creación del DataFrame. El nuevo índice establecido puede reemplazar al índice existente o también puede ser expandido sobre el existente.
Sintaxis del método pandas.DataFrame.set_index()
:
DataFrame.set_index(
keys, drop=True, append=False, inplace=False, verify_integrity=False
)
Parámetros
keys |
columna o lista de columnas que se fijarán como índice |
drop |
Booleana. El valor por defecto es True que borra la columna a establecer como índice |
append |
Booleana. El valor por defecto es False , y especifica si se añaden columnas al índice existente. |
inplace |
Booleana. Si True , modifica el llamador DataFrame en el lugar |
verificar_integridad |
Booleana. Si True , sube ValueError al crear un índice con duplicados. El valor por defecto es False . |
Retorna
Si inplace
es True
, devuelve un objeto DataFrame
con la columna de índice modificada; de lo contrario None
.
Códigos de ejemplo: Establece el índice del DataFrame de Pandas con el método DataFrame.set_index()
de Pandas
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
El DataFrame
original tiene el rango de números como columna de índice por defecto, y en modified_df
, establecemos la columna Name
como índice usando el método set_index()
.
Códigos de ejemplo: Establece drop=False
en el DataFrame.set_index()
método de Pandas
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
Si establecemos drop=False
en el método set_index
del dataframe, la columna Name
sigue siendo una columna en el Dataframe
incluso después de ser establecida como la columna index
.
Códigos de ejemplo: Establecer inplace=True
en el método DataFrame.set_index
de Pandas
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
Si ponemos inplace=True
en el método set_index()
, el llamador DataFrame
se modifica en el lugar.
Códigos de ejemplo: Establecer una columna de índice múltiple usando el método DataFrame.set_index()
de Pandas
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
Si establecemos append=True
en el método set_index
, agrega la columna de índice recién establecida al índice existente y tiene múltiples columnas de índice para el único DataFrame
.
Códigos de ejemplo: Pandas Dataframe.set_index()
Comportamiento cuando verify_integrity
es 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 el ValueError
porque el índice tiene claves duplicadas - Apple
. Tiene dos Apple
en la columna que es el índice; por lo tanto, aumenta el error si verify_integrity
es True
en el método set_index()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn