Pandas sampler med startdato

stemmer
6

Jeg vil resample et panda-objekt ved å bruke en bestemt dato (eller måned) som kanten av den første søpla. For eksempel vil jeg i den følgende utdragen at min første indeksverdi skal være 2020-02-29 og jeg vil gjerne spesifisere start=2 eller 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

Så langt er dette det reneste jeg kan komme med bruksområder pd.cut og 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
Publisert på 09/06/2020 klokken 21:14
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Du kan bruke 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

Forskyvningen er standard for hvor mye du vil utligne, fra venstre.

Se flere detaljer i dokumentene .

Datohyllene ender slik du vil, men våre resulterende verdier er forskjellige. Jeg skal dykke nærmere på hvorfor senere i kveld når jeg kan leke med koden litt mer. Jeg mistenker at det har å gjøre med hvordan loffset håndterer faktisk binning.

Svarte 11/06/2020 kl. 22:48
kilden bruker

stemmer
0

Alt du trenger å bruke er pd.cut som nedenfor:

>>> 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

det er ikke nødvendig å bruke groupby

Svarte 11/06/2020 kl. 23:23
kilden bruker

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