
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ślnieTrue
).labels
– etykiety dla przedziałów (opcjonalne).retbins
– jeśliTrue
, zwraca także użyte przedziały.precision
– liczba cyfr po przecinku.include_lowest
– jeśliTrue
, 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 zastosowaniaOpanuj 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.