
Jeżeli pracujesz z biblioteką pandas
w Pythonie, prawdopodobnie często manipulujesz indeksami DataFrame’a. Jednym z kluczowych narzędzi do tego celu jest metoda set_index()
. Dziś pokażę, jak działa pandas.set_index()
w języku Python, a także przedstawię kilka praktycznych przykładów zastosowania.
Co robi pandas.set_index()?
Metoda set_index()
służy do ustawienia jednej lub kilku kolumn DataFrame’a jako indeks. Jest to niezwykle przydatne, gdy chcemy łatwiej filtrować, sortować lub grupować dane. Domyślnie indeksy w DataFrame’ach to numeryczne wartości od 0 wzwyż, ale często bardziej sensowne jest nadanie im bardziej opisowego charakteru.
Podstawowa składnia
Oto jak wygląda podstawowa składnia metody set_index()
:
DataFrame.set_index(keys, drop=True, append=False, inplace=False)
Główne argumenty tej funkcji to:
- keys – pojedyncza kolumna lub lista kolumn, które mają stać się nowym indeksem,
- drop (domyślnie
True
) – jeśliTrue
, to kolumna nie będzie już obecna w DataFrame, w przeciwnym razie zostanie zachowana, - append (domyślnie
False
) – jeśliTrue
, nowy indeks zostanie dodany do istniejącego indeksu, zamiast go zastępować, - inplace (domyślnie
False
) – jeśliTrue
, DataFrame zostanie zmodyfikowany w miejscu, a funkcja nie zwróci nowego obiektu,
Przykład zastosowania pandas.set_index()
Załóżmy, że mamy następujący DataFrame:
import pandas as pd
data = {
'ID': [1, 2, 3, 4],
'Imię': ['Jan', 'Anna', 'Marek', 'Zofia'],
'Wiek': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
print(df)
Wynik:
ID | Imię | Wiek |
---|---|---|
1 | Jan | 25 |
2 | Anna | 30 |
3 | Marek | 35 |
4 | Zofia | 40 |
Teraz ustawmy kolumnę ID
jako indeks:
df = df.set_index('ID')
print(df)
Teraz DataFrame wygląda tak:
Imię Wiek
ID
1 Jan 25
2 Anna 30
3 Marek 35
4 Zofia 40
Ustawienie indeksu bez usuwania kolumny
Jeśli chcemy zachować kolumnę ID
w danych, możemy ustawić drop=False
:
df = df.set_index('ID', drop=False)
Wtedy DataFrame zachowuje swoją kolumnę:
ID Imię Wiek
ID
1 1 Jan 25
2 2 Anna 30
3 3 Marek 35
4 4 Zofia 40
Ustawienie indeksu z wieloma kolumnami
Jeśli chcemy, aby indeks składał się z więcej niż jednej kolumny, możemy przekazać listę kolumn:
df = df.set_index(['Imię', 'Wiek'])
Teraz indeksem są zarówno imię, jak i wiek:
ID
Imię Wiek
Jan 25 1
Anna 30 2
Marek 35 3
Zofia 40 4
Dodanie nowego indeksu do istniejącego
Jeśli chcemy dodać nowy indeks zamiast zastępować istniejący, możemy użyć append=True
:
df = df.set_index('Wiek', append=True)
Teraz mamy zarówno numer ID, jak i wiek jako indeks:
Imię
ID Wiek
1 25 Jan
2 30 Anna
3 35 Marek
4 40 Zofia
Modyfikacja DataFrame na miejscu
Jeśli nie chcemy tworzyć nowej zmiennej, a jedynie zmodyfikować istniejący DataFrame, możemy użyć inplace=True
:
df.set_index('ID', inplace=True)
Wtedy modyfikacja zostanie wykonana bez przypisywania do nowej zmiennej.
Podsumowanie
Metoda pandas.set_index()
to potężne narzędzie do manipulacji danymi w ramach DataFrame. Oto najważniejsze rzeczy, które warto zapamiętać:
- Zmienia kolumnę (lub kilka kolumn) w indeks.
- Domyślnie usuwa kolumnę ze zbioru danych, chyba że ustawimy
drop=False
. - Możemy tworzyć indeksy wielopoziomowe poprzez przekazanie listy kolumn.
- Użycie
append=True
dodaje nowy indeks do istniejącego. - Dzięki
inplace=True
możemy modyfikować DataFrame bez tworzenia nowej zmiennej.
Zrozumienie działania indeksów w pandas
znacznie ułatwia analizę danych i przyspiesza pracę z tabelami. Mam nadzieję, że ten artykuł pomógł Ci opanować set_index()
i zachęcił do eksplorowania większych możliwości tej biblioteki!
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.