Ce face pd.date_range()
pd.date_range() generează un DatetimeIndex, adică o listă ordonată de date. Dai două dintre start, end și periods, plus frecvența freq (implicit "D", câte o zi).
Frecvențe des folosite: "D" (zi), "W-MON" (în fiecare luni; "W" înseamnă duminica), "MS" (început de lună), "ME" (sfârșit de lună), "QE" (sfârșit de trimestru), "YE" (sfârșit de an), "h" (oră). În pandas 3, vechile coduri "M", "H", "A" nu mai sunt acceptate aici.
Rezultatul este util ca index pentru o serie de timp sau pentru a completa zilele lipsă dintr-un tabel.
Parametri
| Parametru | Descriere |
|---|---|
start, end |
Prima și ultima dată (text sau Timestamp). |
periods |
Câte date se generează. |
freq |
Pasul dintre date: "D", "W-MON", "MS", "ME", "h", "2D" (din două în două zile). |
inclusive |
Dacă start și end intră în rezultat: "both" (implicit), "left", "right", "neither". |
name |
Numele indexului rezultat. |
Ce returnează
Un DatetimeIndex.
Exemple
Exemplul 1: Zilele unei săptămâni
import pandas as pd
zile = pd.date_range(start="2026-10-19", end="2026-10-25")
print(zile)
print(len(zile), "zile")
Rezultat
DatetimeIndex(['2026-10-19', '2026-10-20', '2026-10-21', '2026-10-22',
'2026-10-23', '2026-10-24', '2026-10-25'],
dtype='datetime64[us]', freq='D')
7 zile
Exemplul 2: Sfârșit de lună și început de lună
import pandas as pd
print(pd.date_range("2026-01-01", periods=4, freq="ME"))
print(pd.date_range("2026-01-01", periods=4, freq="MS"))
Rezultat
DatetimeIndex(['2026-01-31', '2026-02-28', '2026-03-31', '2026-04-30'],
dtype='datetime64[us]', freq='ME')
DatetimeIndex(['2026-01-01', '2026-02-01', '2026-03-01', '2026-04-01'],
dtype='datetime64[us]', freq='MS')
Exemplul 3: Fiecare luni din octombrie, ca index pentru ședințe
import pandas as pd
lunea = pd.date_range("2026-10-01", "2026-10-31", freq="W-MON")
sedinte = pd.Series(["Ana", "Mihai", "Elena", "Ioana"], index=lunea, name="prezinta")
print(sedinte)
Rezultat
2026-10-05 Ana
2026-10-12 Mihai
2026-10-19 Elena
2026-10-26 Ioana
Freq: W-MON, Name: prezinta, dtype: str
Greșeli frecvente
- Folosești
freq="M"din tutoriale vechi. În pandas 3 primeștiValueError; scrie"ME"(sfârșit de lună) sau"MS"(început de lună). - Dai deodată
start,end,periodsșifreq. Doar trei din patru pot fi date; altfel apareValueError. - Crezi că
freq="W"înseamnă lunea."W"este"W-SUN"(duminica); pentru luni scrie"W-MON".
Comenzi înrudite
pd.to_datetime(): Transformă text sau numere în date calendaristice (datetime64), ca să poți calcula cu ele și să folosești accesorul .dt.Series.dt (year, month, day_name, strftime, to_period): Accesorul .dt dă acces la anul, luna, ziua sau ziua săptămânii dintr-o coloană de date și le formatează ca text.DataFrame.resample(): Grupează o serie de timp pe intervale (săptămâni, luni) și calculează câte o valoare pe interval: sumă, medie, număr.DataFrame.rolling(): Calculează pe o fereastră mobilă de rânduri, de exemplu media ultimelor 3 luni, ca să netezești variațiile.