Pandas DataFrame DataFrame.set_index() Funktion
-
Syntax der Methode
pandas.DataFrame.set_index(): -
Beispiel-Codes: Pandas DataFrame-Index setzen mit Pandas
DataFrame.set_index()Methode -
Beispiel-Codes: Setzen von
drop=Falsein PandasDataFrame.set_index()Methode -
Beispiel-Codes: Setzen von
inplace=Truein PandasDataFrame.set_indexMethode -
Beispiel-Codes: Setzen mehrerer Indexspalten mit Pandas
DataFrame.set_index()Methode -
Beispiel-Codes: Pandas
Dataframe.set_index()Verhalten WennVerify_integrityTrueist
Die Methode pandas.DataFrame.set_index() kann verwendet werden, um Arrays oder Spalten geeigneter Länge als Index von DataFrame zu setzen, auch nach der Erstellung von DataFrame. Der neu gesetzte Index kann den bestehenden Index ersetzen oder auch auf den bestehenden Index erweitert werden.
Syntax der Methode pandas.DataFrame.set_index():
DataFrame.set_index(
keys, drop=True, append=False, inplace=False, verify_integrity=False
)
Parameter:
keys |
Spalte oder Liste von Spalten, die als Index gesetzt werden sollen |
drop |
Boolesch. Der Standardwert ist True, der die Spalte löscht, die als Index gesetzt werden soll. |
append |
Boolesch. Der Standardwert ist False, und er gibt an, ob Spalten an den bestehenden Index angehängt werden sollen. |
inplace |
Boolesch. Wenn True, modifizieren Sie den aufrufenden DataFrame an Ort und Stelle |
Integrität_verifizieren |
Boolesch. Falls True, erhöhen Sie ValueError beim Erstellen eines Index mit Duplikaten. Der Standardwert ist False. |
Geben Sie zurück
Wenn inplace gleich True ist, gibt es ein DataFrame-Objekt mit modifizierter Indexspalte zurück; andernfalls None.
Beispiel-Codes: Pandas DataFrame-Index setzen mit Pandas DataFrame.set_index() Methode
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)
Ausgabe:
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
Der originale Dataframe hat den Zahlenbereich als Standardindex-Spalte, und in modified_df setzen wir die Spalte Name mit der Methode set_index() als Index.
Beispiel-Codes: Setzen von drop=False in Pandas DataFrame.set_index() Methode
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)
Ausgabe:
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
Wenn wir drop=False in der Methode set_index des DataFrame setzen, bleibt die Spalte Name als Spalte im Dataframe erhalten, auch nachdem sie als Spalte index gesetzt wurde.
Beispiel-Codes: Setzen von inplace=True in Pandas DataFrame.set_index Methode
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)
Ausgabe:
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
Wenn wir inplace=True in der Methode set_index() setzen, wird der Aufrufer dataFrame an Ort und Stelle modifiziert.
Beispiel-Codes: Setzen mehrerer Indexspalten mit Pandas DataFrame.set_index() Methode
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)
Ausgabe:
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
Wenn wir append=True in der set_index-Methode setzen, hängt sie die neu gesetzte Indexspalte an den bestehenden Index an und hat mehrere Indexspalten für den einzelnen DataFrame.
Beispiel-Codes: Pandas Dataframe.set_index() Verhalten Wenn Verify_integrity True ist
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)
Ausgabe:
Traceback (most recent call last):
.....line 3920, in set_index
dup=duplicates))
ValueError: Index has duplicate keys: Index(['Apple'], dtype='object', name='Name')
Es wird ValueError ausgegeben, weil der Index doppelte Schlüssel hat - Apple. Er hat zwei Apple in der Spalte, die als Index gesetzt ist; daher erzeugt er einen Fehler, wenn verify_integrity in der Methode set_index() auf True gesetzt ist.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn