शुरुआत की तारीख के साथ पंडों का फिर से खेलना

वोट
6

मैं पहले बिन के किनारे के रूप में एक विशिष्ट तिथि (या महीने) का उपयोग करके एक पांडा वस्तु को फिर से जोड़ना चाहता हूं। उदाहरण के लिए, निम्नलिखित स्निपेट में मैं अपना पहला सूचकांक मान होना चाहूंगा 2020-02-29 और मुझे ख़ुशी होगी start=2 या 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

अब तक यह सबसे साफ है जो मैं उपयोग के साथ आ सकता है pd.cut तथा 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
09/06/2020 को 21:14
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

आप उपयोग कर सकते हैं 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

ऑफसेट बाईं ओर से आप कितना ऑफसेट करना चाहते हैं, यह चूक करता है।

डॉक्स में अधिक विवरण देखें।

तारीख के डिब्बे आपके इच्छित तरीके को समाप्त कर देते हैं, लेकिन हमारे परिणामी मूल्य भिन्न होते हैं। मैं क्यों आज रात बाद में गोता लगाऊंगा जब मैं कोड के साथ थोड़ा और खेल सकता हूं। मुझे संदेह है कि यह कैसे करना है loffset वास्तव में बिनिंग को संभालता है।

11/06/2020 को 22:48
का स्रोत उपयोगकर्ता

वोट
0

आप सभी का उपयोग करने की आवश्यकता है pd.cut नीचे की तरह:

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

उपयोग करने की कोई आवश्यकता नहीं है groupby

11/06/2020 को 23:23
का स्रोत उपयोगकर्ता

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