Funzione Pandas DataFrame DataFrame.set_index()
-
Sintassi del metodo
pandas.DataFrame.set_index()
: -
Codici di esempio: imposta l’indice DataFrame di Pandas con il metodo Pandas
DataFrame.set_index()
-
Codici di esempio: imposta
drop=False
nel metodo PandasDataFrame.set_index()
-
Codici di esempio: imposta
inplace=True
nel metodo PandasDataFrame.set_index
-
Codici di esempio: imposta più colonne di indice utilizzando il metodo Pandas
DataFrame.set_index()
-
Codici di esempio: Pandas
Dataframe.set_index()
Comportamento quandoverify_integrity
èTrue
Il metodo pandas.DataFrame.set_index()
può essere utilizzato per impostare array o colonne di lunghezza appropriata come indice di DataFrame anche dopo la creazione di DataFrame. L’indice appena impostato può sostituire l’indice esistente o può anche essere espanso su quello esistente.
Sintassi del metodo pandas.DataFrame.set_index()
:
DataFrame.set_index(
keys, drop=True, append=False, inplace=False, verify_integrity=False
)
Parametri
keys |
colonna o lista di colonne da impostare come indice |
drop |
Booleano. Il valore predefinito è True che elimina la colonna da impostare come indice |
append |
Booleano. Il valore predefinito è False e specifica se aggiungere colonne all’indice esistente. |
inplace |
Booleano. Se True , modifica il DataFrame del chiamante sul posto |
verify_integrity |
Booleano. Se True , solleva ValueError quando si crea un indice con duplicati. Il valore predefinito è False . |
Ritorno
Se inplace
è True
, restituisce un oggetto DataFrame
con colonna indice modificata; altrimenti None
.
Codici di esempio: imposta l’indice DataFrame di Pandas con il metodo 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)
Produzione:
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
Il Dataframe
originale ha l’intervallo di numeri come colonna dell’indice di default, e in modified_df
, impostiamo la colonna Name
come indice usando il metodo set_index()
.
Codici di esempio: imposta drop=False
nel metodo 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",drop=False)
print(df_modified)
Produzione:
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 impostiamo drop=False
nel metodo dataframe set_index
, la colonna Name
rimane ancora come una colonna nel Dataframe
anche dopo che è stata impostata come colonna index
.
Codici di esempio: imposta inplace=True
nel metodo 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)
Produzione:
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 impostiamo inplace=True
nel metodo set_index()
, il chiamante dataFrame
viene modificato sul posto.
Codici di esempio: imposta più colonne di indice utilizzando il metodo 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",append=True,inplace=True,drop=False)
print("After Setting Index:")
print(df)
Produzione:
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 impostiamo append=True
nel metodo set_index
, aggiunge la colonna dell’indice appena impostata all’indice esistente e ha più colonne dell’indice per il singolo DataFrame
.
Codici di esempio: Pandas Dataframe.set_index()
Comportamento quando 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)
Produzione:
Traceback (most recent call last):
.....line 3920, in set_index
dup=duplicates))
ValueError: Index has duplicate keys: Index(['Apple'], dtype='object', name='Name')
Solleva ValueError
perché l’indice ha chiavi duplicate - Apple
. Ha due Apple
nella colonna che è impostata per essere l’indice; quindi, solleva un errore se verify_integrity
è impostato su True
nel metodo set_index()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn