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ăcolumnseste obligatoriu laDataFrame. - Folosești
nlargestpe o coloană de text: primeștiTypeError. Metoda merge doar pe coloane numerice (sau de tip dată); pentru text foloseștesort_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ă.
Î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.