describe() în pandas

Calculează statistici rapide pe coloane: număr, medie, abatere standard, minim, cuartile, maxim; pentru text, valori unice și cea mai frecventă.

Sintaxă
df.describe(percentiles=None, include=None, exclude=None)

Ce face describe()

describe() dă un tabel de statistici pentru coloanele numerice: count (câte valori completate), mean (media), std (abaterea standard), min, cuartilele 25%, 50% (mediana), 75% și max. Coloanele de text sunt ignorate implicit.

Cu include="all" intră toate coloanele; pentru text apar unique (câte valori diferite), top (valoarea cea mai frecventă) și freq (de câte ori apare). Cu include="str" primești doar coloanele de text. Celulele care nu au sens pentru un tip de coloană rămân NaN.

Parametrul percentiles schimbă percentilele afișate (mediana apare mereu). Metoda merge și pe un singur Series.

Parametri

Parametru Descriere
percentiles Lista percentilelor, între 0 și 1, de exemplu [0.1, 0.9]. Implicit [0.25, 0.5, 0.75].
include Ce tipuri de coloane intră: "all", "number", "str" sau o listă de tipuri.
exclude Ce tipuri de coloane se lasă deoparte.

Ce returnează

Un DataFrame cu statisticile (sau un Series, când pornești de la un Series).

Exemple

Exemplul 1: Statistici pentru coloanele numerice

Coloana nume este text, deci nu apare. Media vârstei este 16.8, iar media notelor 8.9.

import pandas as pd

df = pd.DataFrame({
    "nume": ["Ana", "Mihai", "Ioana", "Radu", "Elena"],
    "vârstă": [17, 16, 17, 18, 16],
    "nota": [9.5, 8.0, 10.0, 7.5, 9.5],
})
print(df.describe())

Rezultat

         vârstă       nota
count   5.00000   5.000000
mean   16.80000   8.900000
std     0.83666   1.083974
min    16.00000   7.500000
25%    16.00000   8.000000
50%    17.00000   9.500000
75%    17.00000   9.500000
max    18.00000  10.000000

Exemplul 2: Toate coloanele sau doar textul

Iași apare de 3 ori din 5, deci este top, cu freq 3. round(2) scurtează zecimalele.

import pandas as pd

pd.set_option("display.width", 100)
df = pd.DataFrame({
    "oraș": ["Iași", "Cluj", "Iași", "Brașov", "Iași"],
    "vânzări": [1200, 1500, 950, 1100, 1430],
})
print(df.describe(include="all").round(2))
print(df.describe(include="str"))

Rezultat

        oraș  vânzări
count      5     5.00
unique     3      NaN
top     Iași      NaN
freq       3      NaN
mean     NaN  1236.00
std      NaN   228.54
min      NaN   950.00
25%      NaN  1100.00
50%      NaN  1200.00
75%      NaN  1430.00
max      NaN  1500.00
        oraș
count      5
unique     3
top     Iași
freq       3

Exemplul 3: Percentile proprii, pe un Series

Cu percentiles=[0.1, 0.9] apar percentilele 10% și 90%, plus mediana (50%).

import pandas as pd

salarii = pd.Series([3800, 4200, 4500, 5200, 6100, 7400, 12500], name="salariu")
print(salarii.describe(percentiles=[0.1, 0.9]))

Rezultat

count        7.000000
mean      6242.857143
std       3021.510187
min       3800.000000
10%       4040.000000
90%       9440.000000
max      12500.000000
Name: salariu, dtype: float64

Greșeli frecvente

  • Te miri că o coloană nu apare în describe(). Este de tip text (de multe ori din cauza unei valori greșite în fișier); verifică cu df.dtypes.
  • Iei count drept numărul de rânduri. count numără doar valorile completate; valorile lipsă nu intră.
  • Compari doar media când datele au valori extreme. Un salariu foarte mare trage media în sus; uită-te și la mediană (50%).

Comenzi înrudite

  • DataFrame.info(): Afișează un rezumat al tabelului: numărul de rânduri, coloanele, câte valori completate are fiecare, tipurile și memoria.
  • 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.
  • dtypes / select_dtypes(): dtypes arată tipul fiecărei coloane; select_dtypes păstrează doar coloanele de anumite tipuri (numere, text, date).
  • DataFrame.groupby(): Împarte tabelul în grupuri după una sau mai multe coloane, ca să calculezi totaluri, medii sau numărări pentru fiecare grup.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: describe()

Ai o nelămurire despre utilizarea comenzii describe() 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.