Jak działa pandas set_index w języku Python? Przykład zastosowania

Jak działa pandas set_index w języku Python? Przykład zastosowania
„`html

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śli True, to kolumna nie będzie już obecna w DataFrame, w przeciwnym razie zostanie zachowana,
  • append (domyślnie False) – jeśli True, nowy indeks zostanie dodany do istniejącego indeksu, zamiast go zastępować,
  • inplace (domyślnie False) – jeśli True, 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!

„` Inny ciekawy artykuł: Jak działa pandas rename w języku Python? Przykład zastosowania
KajoDataSpace