
Praca z biblioteką Pandas w Pythonie to czysta przyjemność, a jedną z przydatnych funkcji jest idxmax()
. Jeśli chcesz szybko znaleźć indeks maksymalnej wartości w DataFrame lub Series, to właśnie ta funkcja zrobi za Ciebie całą robotę.
Co to jest idxmax()
w Pandas?
Funkcja idxmax()
służy do zwracania indeksu pierwszej największej wartości w całej serii danych lub kolumnie DataFrame. To bardzo przydatne narzędzie, gdy chcemy znaleźć, dla którego wiersza dany atrybut osiąga najwyższą wartość.
Jest to znacznie bardziej intuicyjne niż korzystanie z argmax()
czy innych metod iteracyjnych, ponieważ od razu zwraca indeks, zamiast pozycji liczbowej.
Podstawowa składnia funkcji idxmax()
Series.idxmax(axis=0, skipna=True)
Argumenty:
axis
– oś, na której operujemy (0 – kolumny, 1 – wiersze, domyślnie 0).skipna
– czy pomijać wartościNaN
(domyślnieTrue
).
Zwracana wartość: Indeks maksymalnej wartości w danej osi.
Przykład zastosowania idxmax()
na serii Pandas
Zacznijmy od prostego przykładu użycia na obiekcie Series
:
import pandas as pd
# Tworzymy serię Pandas
data = pd.Series([10, 50, 30, 70, 20])
# Wyszukujemy indeks wartości maksymalnej
max_index = data.idxmax()
print("Indeks maksymalnej wartości:", max_index)
Wynik:
Indeks maksymalnej wartości: 3
W tym przypadku największa wartość to 70, która znajduje się pod indeksem 3
.
Przykład zastosowania idxmax()
w DataFrame
Teraz sprawdźmy, jak działa idxmax()
w większym zbiorze danych.
import pandas as pd
# Tworzymy DataFrame
df = pd.DataFrame({
'A': [10, 20, 30],
'B': [5, 25, 15],
'C': [40, 35, 50]
}, index=['x', 'y', 'z'])
# Znajdujemy indeksy maksymalnych wartości dla każdej kolumny
max_indices = df.idxmax()
print(max_indices)
Wynik:
A | B | C | |
---|---|---|---|
0 | z | y | z |
Oznacza to, że:
- Największa wartość w kolumnie
A
to30
, która znajduje się pod indeksemz
. - Największa wartość w kolumnie
B
to25
, znajdująca się pod indeksemy
. - Największa wartość w kolumnie
C
to50
, również pod indeksemz
.
Obsługa wartości NaN
w idxmax()
Co się stanie, jeśli w zbiorze znajdą się brakujące wartości (NaN
)? Domyślnie funkcja je ignoruje, ale można to zmienić.
import pandas as pd
import numpy as np
# DataFrame z wartościami NaN
df2 = pd.DataFrame({
'A': [10, np.nan, 30],
'B': [5, np.nan, np.nan],
'C': [40, 35, 50]
}, index=['x', 'y', 'z'])
# idxmax() bez pomijania NaN
max_indices_with_nan = df2.idxmax(skipna=False)
print(max_indices_with_nan)
Jeśli dana kolumna składa się tylko z NaN
, wtedy zwracana wartość to NaN
. Jednak jeśli są tam liczby, funkcja po prostu je ignoruje i wyszukuje największą z nich.
Kiedy warto używać idxmax()
?
Funkcja idxmax()
przydaje się w wielu scenariuszach, np.:
- Gdy chcemy znaleźć osobę z najwyższym wynikiem w tabeli wyników.
- W analizie finansowej – np. dzień, w którym akcje miały najwyższą cenę.
- W analizie sportowej – identyfikacja zespołu z najwyższą liczbą punktów.
- W analizie sprzedaży, np. który produkt miał najwyższą sprzedaż.
Podsumowanie
Funkcja idxmax()
w Pandas jest szybkim i efektywnym sposobem na identyfikację indeksu największej wartości w serii danych. Działa zarówno dla Series
, jak i DataFrame
, a dodatkowo umożliwia kontrolowanie obsługi wartości brakujących.
Warto mieć ją w swoim arsenale, gdy pracuje się z dużymi zbiorami danych w Pythonie. Dzięki temu można szybko wyciągać wartościowe wnioski bez zbędnego iterowania po danych.
„` Inny ciekawy artykuł: Jak działa pandas duplicated 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.