
W świecie analizy danych biblioteka pandas jest jednym z najważniejszych narzędzi dostępnych dla programistów Pythona. Jedną z jej funkcji, którą często wykorzystuję w projektach, jest pandas.nlargest()
. Umożliwia ona szybkie wyłuskanie największych wartości w danych, a przy tym działa efektywnie i jest prosta w użyciu.
Co robi funkcja pandas.nlargest()?
Funkcja nlargest()
pozwala szybko znaleźć kilka największych wartości w kolumnie DataFrame’a lub Serii. Jest szczególnie przydatna, gdy pracujemy z dużymi zbiorami danych i chcemy wyodrębnić wartości z największymi liczbami.
Jeżeli pracujesz z tabelą zawierającą sprzedaż miesięczną, to możesz użyć tej funkcji, aby zobaczyć, które miesiące przyniosły najlepsze wyniki.
Składnia funkcji pandas.nlargest()
Funkcja nlargest()
ma prostą składnię:
DataFrame.nlargest(n, columns, keep='first')
Gdzie:
n
– liczba największych wartości, które chcemy zwrócić.columns
– kolumna lub lista kolumn, według których porównujemy wartości.keep
– określa sposób traktowania wartości, jeśli są identyczne. Możliwe opcje:'first'
– zwraca pierwsze znalezione wartości (domyślne).'all'
– zwraca wszystkie wartości ex aequo.
Przykład zastosowania pandas.nlargest()
Zobaczmy, jak działa w praktyce:
import pandas as pd
# Tworzę przykładowy DataFrame
df = pd.DataFrame({
'Produkt': ['Telefon', 'Laptop', 'Tablet', 'Monitor', 'Klawiatura'],
'Sprzedaż': [500, 1200, 300, 900, 400]
})
# Znajduję 3 produkty o najwyższej sprzedaży
top_sprzedaz = df.nlargest(3, 'Sprzedaż')
print(top_sprzedaz)
Wynik:
Produkt Sprzedaż
1 Laptop 1200
3 Monitor 900
0 Telefon 500
Jak widać, funkcja zwraca wiersze z największymi wartościami w kolumnie Sprzedaż
.
Zastosowanie pandas.nlargest() na wielu kolumnach
Pandas pozwala na sortowanie nie tylko według jednej kolumny. Możemy uwzględnić kilka kolumn naraz:
df = pd.DataFrame({
'Produkt': ['Telefon', 'Laptop', 'Tablet', 'Monitor', 'Klawiatura'],
'Sprzedaż': [500, 1200, 300, 900, 900],
'Ocena': [4.5, 4.8, 4.2, 4.7, 4.8]
})
# Wybieram 3 najwyższe wartości według Sprzedaży, a następnie według Oceny
top_sprzedaz_ocena = df.nlargest(3, ['Sprzedaż', 'Ocena'])
print(top_sprzedaz_ocena)
Różnica między sortowaniem a pandas.nlargest()
Możesz się zastanawiać, czym różni się nlargest()
od klasycznego sortowania z użyciem sort_values()
. Odpowiedź jest prosta – wydajność.
Gdy mamy dużą ilość danych i potrzebujemy tylko kilku największych wartości, nlargest()
działa szybciej niż pełne sortowanie i wybór .head()
:
# Pełne sortowanie i wybór pierwszych 3 wartości (wolniejsze)
df.sort_values(by='Sprzedaż', ascending=False).head(3)
# pandas.nlargest() (szybsze)
df.nlargest(3, 'Sprzedaż')
Tabela porównawcza pandas.nlargest() vs sort_values()
Metoda | Wydajność | Przypadek użycia |
---|---|---|
nlargest() |
Lepsza dla dużych zbiorów | Szybkie pobranie największych wartości |
sort_values().head() |
Wolniejsza | Kiedy potrzebujemy posortowanych danych |
Podsumowanie
- Funkcja
nlargest()
pozwala na szybkie wyszukanie największych wartości w kolumnie. - Można jej używać zarówno na jednej, jak i na wielu kolumnach.
- Jest wydajniejsza niż zwykłe sortowanie dla dużych zbiorów danych.
Jeśli pracujesz z dużymi zbiorami danych i chcesz wyciągnąć tylko kilka kluczowych informacji, to pandas.nlargest()
jest doskonałym wyborem.
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, 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.