Wie unterscheiden sich iloc und loc?

iloc und loc werden in Python beide verwendet, um Zeilen und Spalten aus einem Pandas DataFrame auszuwählen, aber sie arbeiten unterschiedlich.

iloc verwendet eine integerbasierte Indizierung, sodass Sie ganze Zahlen verwenden, um Zeilen und Spalten auszuwählen. Beispiel:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=[0, 1, 2])
print(df.iloc[0:2, 0:1])

Dies wählt die erste und zweite Zeile sowie die erste Spalte des DataFrames aus, wodurch folgender Ausgabe erzeugt wird:

A
0  1
1  2

loc verwendet eine labelbasierte Indizierung, sodass Sie die Labels der Zeilen und Spalten verwenden, um Daten auszuwählen. Beispiel:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
print(df.loc[['a', 'b'], ['A']])

Dies wählt die Zeilen mit den Labels 'a' und 'b' sowie die Spalte mit dem Label 'A' des DataFrames aus, wodurch folgender Ausgabe erzeugt wird:

A
a  1
b  2

Zusammenfassend verwendet iloc eine integerbasierte Indizierung und loc verwendet eine labelbasierte Indizierung, um Zeilen und Spalten aus einem DataFrame auszuwählen.