DataFrame.resample() în pandas

Grupează o serie de timp pe intervale (săptămâni, luni) și calculează câte o valoare pe interval: sumă, medie, număr.

Sintaxă
df.resample(rule, closed=None, label=None, on=None, ...).sum()

Ce face DataFrame.resample()

resample() este un fel de groupby pentru date calendaristice: împarte rândurile pe intervale de timp, după regula rule, apoi aplici o funcție de agregare ca sum(), mean(), count() sau agg().

Tabelul trebuie să aibă un DatetimeIndex (de exemplu după set_index("data")) sau să indici coloana de date cu on="data". Fără ele apare TypeError.

Reguli frecvente: "D" (zi), "W" (săptămână terminată duminica), "ME" (lună, eticheta este ultima zi), "MS" (lună, eticheta este prima zi), "QE" (trimestru), "YE" (an). Intervalele fără date apar și ele în rezultat, cu 0 la sum() și cu valoare lipsă la mean().

Parametri

Parametru Descriere
rule Lungimea intervalului: "D", "W", "ME", "MS", "QE", "YE", "h".
on Numele coloanei de date, dacă datele nu sunt în index.
closed Ce capăt al intervalului este inclus: "left" sau "right".
label Cu ce capăt se etichetează intervalul în rezultat.

Ce returnează

Un obiect Resampler; după sum(), mean() etc. primești un DataFrame sau o Series cu câte un rând pe interval.

Exemple

Exemplul 1: Vânzări zilnice adunate pe luni

Datele sunt puse în index cu set_index; cu "ME" fiecare lună este etichetată cu ultima ei zi.

import pandas as pd

vanzari = pd.DataFrame({
    "data": pd.to_datetime(["2026-01-03", "2026-01-17", "2026-02-02", "2026-02-20", "2026-03-11"]),
    "lei": [150, 90, 300, 120, 80],
}).set_index("data")
print(vanzari.resample("ME").sum())

Rezultat

            lei
data           
2026-01-31  240
2026-02-28  420
2026-03-31   80

Exemplul 2: Coloana de date indicată cu on=

Media pe săptămână, fără să muți coloana în index. Cu "W", fiecare săptămână este etichetată cu duminica în care se termină.

import pandas as pd

df = pd.DataFrame({
    "data": pd.date_range("2026-10-01", periods=6, freq="3D"),
    "lei": [100, 140, 90, 200, 160, 120],
})
print(df)
print(df.resample("W", on="data")["lei"].mean())

Rezultat

        data  lei
0 2026-10-01  100
1 2026-10-04  140
2 2026-10-07   90
3 2026-10-10  200
4 2026-10-13  160
5 2026-10-16  120
data
2026-10-04    120.0
2026-10-11    145.0
2026-10-18    140.0
Freq: W-SUN, Name: lei, dtype: float64

Exemplul 3: Mai multe calcule pe lună

import pandas as pd

comenzi = pd.Series([40, 60, 25, 75, 50],
                    index=pd.to_datetime(["2026-04-02", "2026-04-15", "2026-05-01", "2026-05-09", "2026-05-30"]))
print(comenzi.resample("MS").agg(["count", "sum", "mean"]))

Rezultat

            count  sum  mean
2026-04-01      2  100  50.0
2026-05-01      3  150  50.0

Greșeli frecvente

  • Apelezi resample pe un tabel cu index numeric. Apare TypeError: Only valid with DatetimeIndex...; folosește set_index("data") sau on="data".
  • Coloana de date este încă text. Transformă-o întâi cu pd.to_datetime().
  • Folosești regula "M" din exemple vechi. În pandas 3 nu mai este acceptată: scrie "ME" sau "MS".
  • Te miri de rândurile cu 0 sau lipsă: resample creează toate intervalele dintre prima și ultima dată, inclusiv cele fără date.

Comenzi înrudite

  • DataFrame.groupby(): Împarte tabelul în grupuri după una sau mai multe coloane, ca să calculezi totaluri, medii sau numărări pentru fiecare grup.
  • agg() / aggregate(): Aplică mai multe funcții de agregare deodată, diferite pe coloane, cu nume alese de tine pentru coloanele rezultatului.
  • DataFrame.rolling(): Calculează pe o fereastră mobilă de rânduri, de exemplu media ultimelor 3 luni, ca să netezești variațiile.
  • pd.date_range(): Creează un șir de date la intervale egale: fiecare zi, fiecare sfârșit de lună sau fiecare luni dintr-o perioadă.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: DataFrame.resample()

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