
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
Ato30, która znajduje się pod indeksemz. - Największa wartość w kolumnie
Bto25, znajdująca się pod indeksemy. - Największa wartość w kolumnie
Cto50, 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 zastosowania
Opanuj 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, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

