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

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

Funkcja pandas.cut() jest niezwykle przydatnym narzędziem w bibliotece Pandas. Pozwala na podział danych liczbowych na kategorie, co może być pomocne m.in. w analizie statystycznej i wizualizacji danych. Dziś pokażę, jak działa pandas.cut() w języku Python, oraz przedstawię praktyczne przykłady zastosowania.

Co to jest pandas.cut() i do czego służy?

Funkcja pandas.cut() pozwala podzielić wartości liczbowej kolumny na przedziały, czyli tzw. „biny” (z ang. bins). Przydaje się, gdy chcemy skategoryzować liczby, na przykład przypisać każdej wartości etykietę określającą przedział.

Oto kilka przykładów zastosowania:

  • Grupowanie wyników egzaminacyjnych na oceny.
  • Kategoryzacja wieku klientów w przedziałach (np. 18-25, 26-35, 36-50 itp.).
  • Segmentacja danych finansowych, np. podział przedziałów dochodowych.

Składnia funkcji pandas.cut()

Podstawowa składnia funkcji jest następująca:

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')

Gdzie:

  • x – tablica wartości liczbowych lub seria Pandas.
  • bins – liczba binów lub konkretne wartości granicznych.
  • right – określa, czy granica przedziału ma być prawostronnie domknięta (domyślnie True).
  • labels – etykiety dla przedziałów (opcjonalne).
  • retbins – jeśli True, zwraca także użyte przedziały.
  • precision – liczba cyfr po przecinku.
  • include_lowest – jeśli True, dolna granica w pierwszym przedziale będzie włączona.
  • duplicates – określa, czy mogą powtarzać się granice przedziałów.

Podstawowy przykład użycia pandas.cut()

Załóżmy, że mamy serię danych z wynikami egzaminu i chcemy przypisać każdemu wynikowi określoną kategorię.

import pandas as pd

# Przykładowe dane – wyniki egzaminacyjne
wyniki = [45, 67, 89, 34, 90, 75, 58, 99, 80]

# Definiujemy przedziały i etykiety
przedzialy = [0, 50, 70, 90, 100]
etykiety = ['niedostateczny', 'dostateczny', 'dobry', 'bardzo dobry']

# Zastosowanie pandas.cut()
kategorie = pd.cut(wyniki, bins=przedzialy, labels=etykiety)

# Tworzymy DataFrame do lepszej wizualizacji
df = pd.DataFrame({'Wynik': wyniki, 'Kategoria': kategorie})
print(df)

Po wykonaniu powyższego kodu otrzymamy następującą tabelę:

Wynik Kategoria
45 niedostateczny
67 dostateczny
89 dobry
34 niedostateczny
90 bardzo dobry

Automatyczne generowanie binów

Nie musimy ręcznie podawać przedziałów – można automatycznie podzielić wartości na równą liczbę grup. Wystarczy podać liczbę binów zamiast przedziałów.

wyniki = [45, 67, 89, 34, 90, 75, 58, 99, 80]

# Dzielenie na 4 równe przedziały
kategorie = pd.cut(wyniki, bins=4)

print(kategorie)

Taki sposób dzielenia danych pozwala szybko pogrupować liczby nawet wtedy, gdy nie mamy wcześniej ustalonych granic przedziałów.

Włączenie dolnej granicy

Domyślnie dolna granica pierwszego przedziału jest wyłączona. Jeśli chcemy ją uwzględnić, wystarczy użyć argumentu include_lowest=True.

kategorie = pd.cut(wyniki, bins=przedzialy, labels=etykiety, include_lowest=True)

W ten sposób pierwsza wartość graniczna znajdzie się w przypisanym przedziale, co może mieć znaczenie np. w analizie statystycznej.

Zwracanie granic przedziałów

Jeśli oprócz przypisania kategorii chcemy zobaczyć, jakie przedziały zostały użyte, można skorzystać z opcji retbins=True.

kategorie, granice = pd.cut(wyniki, bins=4, retbins=True)
print("Granice przedziałów:", granice)

Funkcja zwróci nie tylko przyporządkowane kategorie, ale także dokładny podział wartości.

Podsumowanie

Funkcja pandas.cut() to bardzo praktyczne narzędzie do segmentacji danych liczbowych. Pozwala na:

  • ręczne definiowanie przedziałów,
  • automatyczne podział na równe grupy,
  • przypisywanie etykiet,
  • wyświetlanie użytych granic.

Dzięki niej możemy w prosty sposób przekształcić liczby w kategorie, co ułatwia analizę i wizualizację danych.

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