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

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

Podczas pracy z biblioteką Pandas często musimy znaleźć najmniejsze wartości w danym zbiorze danych. W tym celu Python oferuje świetne narzędzie – metodę pandas.nsmallest(). Jest to bardzo wydajne rozwiązanie, które pozwala w szybki sposób uzyskać określoną liczbę najmniejszych wartości z kolumny DataFrame lub Series.

Jak działa pandas nsmallest w języku Python?

Metoda nsmallest() zwraca n najmniejszych wartości dla określonej kolumny w obiekcie DataFrame lub Series. Co ważne, sortowanie odbywa się tylko na tej części danych, której dotyczy operacja, co czyni ją bardziej wydajną niż pełne sortowanie.

Podstawowa składnia wygląda następująco:

DataFrame.nsmallest(n, columns, keep='first')

Gdzie:

  • n – liczba najmniejszych wartości do zwrócenia,
  • columns – nazwa kolumny, według której ma być wykonana operacja,
  • keep – sposób obsługi duplikatów (opcje: 'first', 'all'). Domyślnie pozostawia pierwsze wystąpienie.

Przykład zastosowania pandas.nsmallest()

Załóżmy, że mamy DataFrame z danymi o sprzedaży różnych produktów:

import pandas as pd

data = {
    'Produkt': ['A', 'B', 'C', 'D', 'E'],
    'Sprzedaż': [500, 200, 400, 100, 250]
}

df = pd.DataFrame(data)
print(df)

W efekcie otrzymamy:

ProduktSprzedaż
A500
B200
C400
D100
E250

Aby znaleźć 3 produkty o najniższej sprzedaży, użyjemy:

najmniejsza_sprzedaz = df.nsmallest(3, 'Sprzedaż')
print(najmniejsza_sprzedaz)

Wynikiem będzie:

ProduktSprzedaż
D100
B200
E250

Porównanie pandas.nsmallest() i sort_values()

Alternatywnym sposobem uzyskania najmniejszych wartości byłoby użycie sort_values() oraz head():

df.sort_values('Sprzedaż').head(3)

Różnica polega na tym, że sort_values() wykonuje pełne sortowanie, co może być mniej wydajne dla dużych zbiorów danych. Metoda nsmallest() jest zoptymalizowana pod kątem zwracania jedynie wskazanej liczby najmniejszych wartości.

Obsługa duplikatów w pandas.nsmallest()

Kiedy istnieją duplikaty wartości, możemy zdecydować, czy uwzględniać tylko pierwsze ich wystąpienie (keep='first'), czy wszystkie (keep='all'). Zobaczmy przykład:

data = {
    'Produkt': ['A', 'B', 'C', 'D', 'E', 'F'],
    'Sprzedaż': [500, 200, 400, 100, 200, 100]
}

df = pd.DataFrame(data)
print(df.nsmallest(3, 'Sprzedaż', keep='all'))

W tym przypadku metoda zwróci wszystkie rekordy z najmniejszą wartością (100), a następnie te z kolejną najmniejszą wartością (200).

Podsumowanie

Metoda pandas.nsmallest() to niezwykle przydatne narzędzie do wydobywania najmniejszych wartości z DataFrame w sposób wydajny i intuicyjny. Dzięki niej można uniknąć pełnego sortowania zbioru danych i szybko uzyskać interesujące nas wyniki. Warto stosować ją szczególnie w przypadku dużych zbiorów danych, gdzie oszczędność czasu i zasobów ma kluczowe znaczenie.

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