Panda példa a kezdő dátummal

szavazat
6

Szeretnék újból például pánda tárgyat használni, egy meghatározott dátumot (vagy hónapot) használva az első tálca szélére. Például a következő részletben szeretném, ha az első index értékem lenne 2020-02-29 és szívesen meghatároznék start=2 vagy start=2020-02-29 .

>>> dates = pd.date_range(2020-01-29, 2021-07-04)
>>> s = pd.Series(range(len(dates)), index=dates)
>>> s.resample('4M').count()
2020-01-31      3
2020-05-31    121
2020-09-30    122
2021-01-31    123
2021-05-31    120
2021-09-30     34
Freq: 4M, dtype: int64

Eddig ez a legtisztább, amire utalhatok pd.cut és groupby :

>>> rule = 4M
>>> start = pd.Timestamp(2020-02-29) - pd.tseries.frequencies.to_offset(rule)
>>> end = s.index.max() + pd.tseries.frequencies.to_offset(rule)
>>> bins = pd.date_range(start, end, freq=rule)
>>> gb = s.groupby(pd.cut(s.index, bins)).count()
>>> gb.index = gb.index.categories.right
>>> gb
2020-02-29     32
2020-06-30    122
2020-10-31    123
2021-02-28    120
2021-06-30    122
2021-10-31      4
dtype: int64
A kérdést 09/06/2020 21:14
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Te tudod használni loffset :

>>> dates = pd.date_range("2020-01-29", "2021-07-04")
>>> s = pd.Series(range(len(dates)), index=dates)
>>> s.resample('4M', loffset='1M').count()
2020-02-29      3
2020-06-30    121
2020-10-31    122
2021-02-28    123
2021-06-30    120
2021-10-31     34
Freq: 4M, dtype: int64

Az eltolás alapértelmezés szerint a bal oldalon mekkora mértékben kívánja eltolni.

További részletek a dokumentumokban találhatók .

A dátumtáblák a kívánt módon végződnek, de az így kapott értékek különböznek. Fontos belemerülni, miért később ma este, amikor egy kicsit tovább tudok játszani a kóddal. Gyanítom, hogy ennek köze van annak, hogyan loffset valójában kezeli a bingert.

Válaszolt 11/06/2020 22:48
a forrás felhasználó

szavazat
0

Csak annyit kell használnia pd.cut az alábbiak szerint:

>>> gb = pd.cut(s.index, bins).value_counts()
>>> gb.index = gb.index.categories.right
>>> gb
2020-02-29     32
2020-06-30    122
2020-10-31    123
2021-02-28    120
2021-06-30    122
2021-10-31      4
dtype: int64

nem kell használni groupby

Válaszolt 11/06/2020 23:23
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more