Przydatne metody Series
Używać metod describe(), value_counts(), unique() i map() do szybkiego podsumowywania i przekształcania obiektu Series
Przydatne metody Series to bezpłatna lekcja Pandas & NumPy Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Pandas & NumPy Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Szybkie podsumowanie za pomocą describe()
s.describe() generuje w jednym wywołaniu podsumowanie statystyczne: liczność, średnią, odchylenie standardowe, minimum, 25. percentyl (Q1), medianę (Q2), 75. percentyl (Q3) i maksimum. W przypadku obiektów Series zawierających ciągi znaków zwraca zamiast tego liczność, liczbę unikatowych wartości, wartość najczęstszą i jej częstość. Jest to najszybszy sposób na wstępne poznanie rozkładu kolumny podczas pierwszej analizy zbioru danych.
import pandas as pd
ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count 8.000000
# mean 30.250000
# std 8.406...
# min 19.000000
# 25% 24.250000
# 50% 29.500000
# 75% 34.750000
# max 45.000000value_counts() do tworzenia tabel częstości
s.value_counts() zwraca nowy obiekt Series, w którym unikatowe wartości są indeksem, a liczba ich wystąpień — danymi, posortowanymi malejąco według liczności. Przekazanie normalize=True pozwala uzyskać proporcje zamiast surowych liczności. Jest to pierwsza funkcja, którą warto uruchomić dla kolumny kategorycznej, aby zrozumieć jej rozkład.
import pandas as pd
colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red 3
# blue 2
# green 1
print(colors.value_counts(normalize=True).round(2))
# red 0.50 blue 0.33 green 0.17unique() i nunique()
s.unique() zwraca tablicę NumPy zawierającą odrębne wartości w kolejności ich pierwszego wystąpienia (inaczej niż value_counts, które sortuje według częstości). s.nunique() zwraca jako liczbę całkowitą liczbę odrębnych wartości — czyli kardynalność kolumny. Obie funkcje domyślnie pomijają wartości NaN. Aby uwzględnić NaN jako odrębną wartość, należy użyć nunique(dropna=False).
import pandas as pd
s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique()) # ['apple' 'banana' 'cherry']
print(s.nunique()) # 3map() do przekształceń elementów
s.map() stosuje do każdego elementu funkcję, słownik lub inny obiekt Series. Po przekazaniu słownika każda wartość jest zastępowana odpowiadającą jej wartością ze słownika, a wartości, których w nim nie ma, stają się NaN. Po przekazaniu funkcji jest ona stosowana element po elemencie. map doskonale nadaje się do zmiany etykiet kategorii lub stosowania tabel wyszukiwania.
import pandas as pd
grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0 4.0
# 1 3.0
# 2 2.0
# 3 4.0
# 4 3.0apply() do funkcji niestandardowych
s.apply(func) stosuje wywoływalny obiekt Pythona do każdego elementu i zbiera wyniki. W przeciwieństwie do map() jest przeznaczona do bardziej złożonych funkcji, które mogą zwracać obiekty nieskalarne. W przypadku prostych przekształceń element po elemencie należy preferować map() lub wyrażenie zwektoryzowane; z apply() należy korzystać, gdy logika jest zbyt złożona, aby bezpośrednio ją zwektoryzować.
import pandas as pd
sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0 2
# 1 3
# 2 2sort_values() i sort_index()
s.sort_values() zwraca obiekt Series posortowany rosnąco według wartości danych (należy przekazać ascending=False, aby sortować malejąco). s.sort_index() sortuje według etykiet indeksu. Żadna z tych metod domyślnie nie modyfikuje oryginalnego obiektu Series. Przekazanie inplace=True umożliwia modyfikację w miejscu, choć w nowoczesnym kodzie Pandas, który łączy operacje w łańcuchy, jest to rozwiązanie mniej zalecane.
import pandas as pd
s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a 10
# b 20
# d 30
# c 50
print(s.sort_index())
# a 10
# b 20
# c 50
# d 30isin() do sprawdzania przynależności
s.isin(values) zwraca serię wartości logicznych, w której True oznacza element znajdujący się na podanej liście lub w podanym zbiorze. Jest to czytelniejsze niż używanie wielu warunków | i znacznie szybsze w przypadku dużych zbiorów. Metoda jest często używana do filtrowania wierszy należących do określonej grupy lub oznaczania rekordów pasujących do listy wyszukiwania.
import pandas as pd
countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0 True 1 False 2 True 3 False 4 False 5 True
print(countries[countries.isin(nordics)])between() do filtrowania zakresu
s.between(left, right, inclusive='both') zwraca serię wartości logicznych, w której True oznacza, że wartość mieści się w zakresie [left, right]. Domyślnie oba końce zakresu są uwzględniane. Zapis ten jest krótszy niż (s >= left) & (s <= right) i jasno wyraża intencję. Jest przydatny do filtrowania zakresów liczbowych, takich jak grupy wiekowe lub przedziały cenowe.
import pandas as pd
scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0 False 1 True 2 True 3 True 4 False 5 True
print(scores[pass_mask].values) # [72 83 91 68]head() i tail() do szybkiego sprawdzania
s.head(n) zwraca pierwsze n elementów (domyślnie 5), a s.tail(n) zwraca ostatnie n elementów. Metody te są nieustannie używane podczas eksplorowania danych, aby podejrzeć początek i koniec długiej serii bez wyświetlania tysięcy wierszy. Zwracają nową serię (wycinek), więc nie modyfikują oryginału.
import pandas as pd
s = pd.Series(range(100))
print(s.head(3))
# 0 0
# 1 1
# 2 2
print(s.tail(3))
# 97 97
# 98 98
# 99 99rename() do zmiany nazwy
s.rename('new_name') zwraca nową serię z inną wartością atrybutu name. Aby zmienić etykiety indeksu, należy przekazać słownik lub funkcję: s.rename(index={'old': 'new'}). Zmiana nazw jest ważna przed połączeniem serii w DataFrame, ponieważ wartość name serii staje się nagłówkiem kolumny. Należy zawsze używać zmiany nazwy zamiast ponownego przypisywania surowych wartości.
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x 1
# y 2
# z 3
# Name: updatedidxmin() i idxmax()
s.idxmin() zwraca etykietę indeksu wartości minimalnej, a s.idxmax() zwraca etykietę wartości maksymalnej. Jest to bardziej użyteczne niż argmin/argmax, gdy indeks zawiera znaczące etykiety, takie jak daty lub nazwy produktów — otrzymują Państwo rzeczywisty identyfikator, a nie tylko numer pozycji.
import pandas as pd
scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max()) # Carol 95
print('Worst:', scores.idxmin(), scores.min()) # Dan 60Szybkie sprawdzenie
Proszę sprawdzić swoją znajomość przydatnych metod Series z tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo: describe() tworzy podsumowanie statystyczne w jednym wywołaniu, value_counts() tworzy tabelę częstości unikatowych wartości, a map() tłumaczy wartości za pomocą słownika, podczas gdy apply() uruchamia niestandardową funkcję dla każdego elementu. Następnie zaczniemy pracę z DataFrame — dwuwymiarową podstawą analizy danych w Pandas.
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Przydatne metody Series” jest bezpłatna?
Tak — pełny tekst „Przydatne metody Series” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Pandas & NumPy Academy, przejdź na CoddyKit PRO. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Przydatne metody Series”?
Używać metod describe(), value_counts(), unique() i map() do szybkiego podsumowywania i przekształcania obiektu Series Ćwiczysz Pandas & NumPy Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Pandas & NumPy Academy?
Nie wymagamy żadnego doświadczenia. Pandas & NumPy Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Przydatne metody Series”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Pandas & NumPy Academy?
Tak. Każda lekcja Pandas & NumPy Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie Series
- Dostęp według etykiet i pozycji
- Operacje zwektoryzowane na Series
- Przydatne metody Series