DEPR offsets: rename 'M' to 'ME' by natmokval · Pull Request #52064 · pandas-dev/pandas (original) (raw)
In [1]: In [10]: df = pd.DataFrame({'ts': pd.period_range('2000', periods=3), 'val': [1,2,3]}) ...: ...: In [11]: df.set_index('ts').resample('MS').mean()
AttributeError Traceback (most recent call last) File period.pyx:2854, in pandas._libs.tslibs.period.freq_to_dtype_code()
AttributeError: 'pandas._libs.tslibs.offsets.MonthBegin' object has no attribute '_period_dtype_code'
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last) Cell In[1], line 3 1 df = pd.DataFrame({'ts': pd.period_range('2000', periods=3), 'val': [1,2,3]}) ----> 3 df.set_index('ts').resample('MS').mean()
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/generic.py:9788, in NDFrame.resample(self, rule, axis, closed, label, convention, kind, on, level, origin, offset, group_keys) 9785 else: 9786 kind = None -> 9788 return get_resampler( 9789 cast("Series | DataFrame", self), 9790 freq=rule, 9791 label=label, 9792 closed=closed, 9793 axis=axis, 9794 kind=kind, 9795 convention=convention, 9796 key=on, 9797 level=level, 9798 origin=origin, 9799 offset=offset, 9800 group_keys=group_keys, 9801 )
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:2038, in get_resampler(obj, kind, **kwds) 2034 """ 2035 Create a TimeGrouper and return our resampler. 2036 """ 2037 tg = TimeGrouper(obj, **kwds) # type: ignore[arg-type] -> 2038 return tg._get_resampler(obj, kind=kind)
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:2227, in TimeGrouper._get_resampler(self, obj, kind) 2218 return DatetimeIndexResampler( 2219 obj, 2220 timegrouper=self, (...) 2224 gpr_index=ax, 2225 ) 2226 elif isinstance(ax, PeriodIndex) or kind == "period": -> 2227 return PeriodIndexResampler( 2228 obj, 2229 timegrouper=self, 2230 kind=kind, 2231 axis=self.axis, 2232 group_keys=self.group_keys, 2233 gpr_index=ax, 2234 ) 2235 elif isinstance(ax, TimedeltaIndex): 2236 return TimedeltaIndexResampler( 2237 obj, 2238 timegrouper=self, (...) 2241 gpr_index=ax, 2242 )
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:185, in Resampler.init(self, obj, timegrouper, axis, kind, gpr_index, group_keys, selection, include_groups) 180 self.include_groups = include_groups 182 self.obj, self.ax, self._indexer = self._timegrouper._set_grouper( 183 self._convert_obj(obj), sort=True, gpr_index=gpr_index 184 ) --> 185 self.binner, self.grouper = self._get_binner() 186 self._selection = selection 187 if self._timegrouper.key is not None:
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:250, in Resampler._get_binner(self) 244 @final 245 def _get_binner(self): 246 """ 247 Create the BinGrouper, assume that self.set_grouper(obj) 248 has already been called. 249 """ --> 250 binner, bins, binlabels = self._get_binner_for_time() 251 assert len(bins) == len(binlabels) 252 bin_grouper = BinGrouper(bins, binlabels, indexer=self._indexer)
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:1884, in PeriodIndexResampler._get_binner_for_time(self) 1882 if self.kind == "timestamp": 1883 return super()._get_binner_for_time() -> 1884 return self._timegrouper._get_period_bins(self.ax)
File ~/tmp/.venv/lib/python3.10/site-packages/pandas/core/resample.py:2451, in TimeGrouper._get_period_bins(self, ax) 2447 return binner, bins, labels 2449 freq_mult = self.freq.n -> 2451 start = ax.min().asfreq(self.freq, how=self.convention) 2452 end = ax.max().asfreq(self.freq, how="end") 2453 bin_shift = 0
File period.pyx:1945, in pandas._libs.tslibs.period._Period.asfreq()
File period.pyx:2856, in pandas._libs.tslibs.period.freq_to_dtype_code()
ValueError: Invalid frequency: