nlargest() / nsmallest() în pandas

Returnează rândurile cu cele mai mari (nlargest) sau cele mai mici (nsmallest) n valori dintr-o coloană.

Sintaxă
s.nlargest(n=5, keep='first')
df.nlargest(n, columns, keep='first')
df.nsmallest(n, columns, keep='first')

Ce face nlargest() / nsmallest()

nlargest(n, "coloana") returnează cele n rânduri cu valorile cele mai mari în coloana dată, ordonate descrescător. nsmallest face același lucru pentru valorile cele mai mici, în ordine crescătoare. Rezultatul este același ca la sort_values(...).head(n), scris mai scurt.

Pe un Series nu dai coloana: s.nlargest(3). Pe un DataFrame, columns este obligatoriu și poate fi o listă (a doua coloană decide la egalitate).

Parametrul keep spune ce se întâmplă cu valorile egale la limită: "first" (implicit) păstrează prima apariție, "last" ultima, iar "all" le păstrează pe toate, chiar dacă rezultă mai mult de n rânduri.

Parametri

Parametru Descriere
n Câte rânduri să returneze. La Series implicit 5.
columns Doar la DataFrame: coloana (sau lista de coloane) după care se compară.
keep "first", "last" sau "all": ce se întâmplă cu valorile egale la limită.

Ce returnează

Un obiect nou (Series sau DataFrame) cu cel mult n rânduri (mai multe cu keep="all").

Exemple

Exemplul 1: Cele mai bune 3 luni

import pandas as pd

vanzari = pd.Series(
    [1200, 950, 1430, 1100, 1580, 1720],
    index=["ian", "feb", "mar", "apr", "mai", "iun"],
)
print(vanzari.nlargest(3))
print(vanzari.nsmallest(2))

Rezultat

iun    1720
mai    1580
mar    1430
dtype: int64
feb     950
apr    1100
dtype: int64

Exemplul 2: Rânduri dintr-un tabel

Pe un DataFrame spui coloana după care se compară. Rândurile își păstrează indexul inițial.

import pandas as pd

angajati = pd.DataFrame({
    "nume": ["Ana", "Mihai", "Ioana", "Radu", "Elena"],
    "oraș": ["Iași", "Cluj", "Brașov", "Iași", "Cluj"],
    "salariu": [5200, 6100, 4800, 7300, 5900],
})
print(angajati.nlargest(2, "salariu"))
print(angajati.nsmallest(2, "salariu"))

Rezultat

    nume  oraș  salariu
3   Radu  Iași     7300
1  Mihai  Cluj     6100
    nume    oraș  salariu
2  Ioana  Brașov     4800
0    Ana    Iași     5200

Exemplul 3: Valori egale: keep=”all”

Ioana și Radu au amândoi 9. Cu keep="first" intră doar Ioana (prima apariție); cu keep="all" intră amândoi, deci rezultă 3 rânduri.

import pandas as pd

elevi = pd.DataFrame({
    "nume": ["Ana", "Mihai", "Ioana", "Radu"],
    "nota": [10, 8, 9, 9],
})
print(elevi.nlargest(2, "nota"))
print(elevi.nlargest(2, "nota", keep="all"))

Rezultat

    nume  nota
0    Ana    10
2  Ioana     9
    nume  nota
0    Ana    10
2  Ioana     9
3   Radu     9

Greșeli frecvente

  • Apelezi df.nlargest(3) pe un tabel fără coloană: TypeError, pentru că columns este obligatoriu la DataFrame.
  • Folosești nlargest pe o coloană de text: primești TypeError. Metoda merge doar pe coloane numerice (sau de tip dată); pentru text folosește sort_values.
  • Te aștepți ca indexul să fie renumerotat de la 0. Rezultatul păstrează etichetele inițiale; folosește reset_index(drop=True) dacă vrei numerotare nouă.

Comenzi înrudite

  • DataFrame.sort_values() și sort_index(): Ordonează rândurile după valorile uneia sau mai multor coloane (sort_values) sau după etichetele din index (sort_index).
  • head() / tail(): Afișează primele (head) sau ultimele (tail) n rânduri dintr-un DataFrame sau Series. Implicit 5.
  • value_counts(): Numără de câte ori apare fiecare valoare într-o coloană (sau fiecare combinație de valori pe rânduri), în ordine descrescătoare.
  • describe(): Calculează statistici rapide pe coloane: număr, medie, abatere standard, minim, cuartile, maxim; pentru text, valori unice și cea mai frecventă.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: nlargest() / nsmallest()

Ai o nelămurire despre utilizarea comenzii nlargest() / nsmallest() sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.