Jak działa pandas nlargest w języku Python? Przykład zastosowania

Jak działa pandas nlargest w języku Python? Przykład zastosowania
„`html

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.

„` Inny ciekawy artykuł: Jak działa pandas nsmallest w języku Python? Przykład zastosowania
KajoDataSpace