@@ -130,8 +130,6 @@ class Resampler(BaseGroupBy, PandasObject):
130
130
----------
131
131
obj : Series or DataFrame
132
132
groupby : TimeGrouper
133
- kind : str or None
134
- 'period', 'timestamp' to override default index treatment
135
133
136
134
Returns
137
135
-------
@@ -154,7 +152,6 @@ class Resampler(BaseGroupBy, PandasObject):
154
152
"closed" ,
155
153
"label" ,
156
154
"convention" ,
157
- "kind" ,
158
155
"origin" ,
159
156
"offset" ,
160
157
]
@@ -163,7 +160,6 @@ def __init__(
163
160
self ,
164
161
obj : NDFrame ,
165
162
timegrouper : TimeGrouper ,
166
- kind = None ,
167
163
* ,
168
164
gpr_index : Index ,
169
165
group_keys : bool = False ,
@@ -173,7 +169,6 @@ def __init__(
173
169
self ._timegrouper = timegrouper
174
170
self .keys = None
175
171
self .sort = True
176
- self .kind = kind
177
172
self .group_keys = group_keys
178
173
self .as_index = True
179
174
self .include_groups = include_groups
@@ -1580,7 +1575,7 @@ def _resampler_for_grouping(self) -> type[DatetimeIndexResamplerGroupby]:
1580
1575
1581
1576
def _get_binner_for_time (self ):
1582
1577
# this is how we are actually creating the bins
1583
- if self .kind == "period" :
1578
+ if isinstance ( self .ax , PeriodIndex ) :
1584
1579
return self ._timegrouper ._get_time_period_bins (self .ax )
1585
1580
return self ._timegrouper ._get_time_bins (self .ax )
1586
1581
@@ -1678,7 +1673,9 @@ def _wrap_result(self, result):
1678
1673
1679
1674
# we may have a different kind that we were asked originally
1680
1675
# convert if needed
1681
- if self .kind == "period" and not isinstance (result .index , PeriodIndex ):
1676
+ if isinstance (self .ax , PeriodIndex ) and not isinstance (
1677
+ result .index , PeriodIndex
1678
+ ):
1682
1679
if isinstance (result .index , MultiIndex ):
1683
1680
# GH 24103 - e.g. groupby resample
1684
1681
if not isinstance (result .index .levels [- 1 ], PeriodIndex ):
@@ -1719,7 +1716,7 @@ def _resampler_for_grouping(self):
1719
1716
return PeriodIndexResamplerGroupby
1720
1717
1721
1718
def _get_binner_for_time (self ):
1722
- if self .kind == "timestamp" :
1719
+ if isinstance ( self .ax , DatetimeIndex ) :
1723
1720
return super ()._get_binner_for_time ()
1724
1721
return self ._timegrouper ._get_period_bins (self .ax )
1725
1722
@@ -1736,7 +1733,7 @@ def _convert_obj(self, obj: NDFrameT) -> NDFrameT:
1736
1733
raise NotImplementedError (msg )
1737
1734
1738
1735
# convert to timestamp
1739
- if self . kind == "timestamp" :
1736
+ if isinstance ( obj , DatetimeIndex ) :
1740
1737
obj = obj .to_timestamp (how = self .convention )
1741
1738
1742
1739
return obj
@@ -1751,7 +1748,7 @@ def _downsample(self, how, **kwargs):
1751
1748
**kwargs : kw args passed to how function
1752
1749
"""
1753
1750
# we may need to actually resample as if we are timestamps
1754
- if self .kind == "timestamp" :
1751
+ if isinstance ( self .ax , DatetimeIndex ) :
1755
1752
return super ()._downsample (how , ** kwargs )
1756
1753
1757
1754
ax = self .ax
@@ -1788,7 +1785,7 @@ def _upsample(self, method, limit: int | None = None, fill_value=None):
1788
1785
Value to use for missing values.
1789
1786
"""
1790
1787
# we may need to actually resample as if we are timestamps
1791
- if self .kind == "timestamp" :
1788
+ if isinstance ( self .ax , DatetimeIndex ) :
1792
1789
return super ()._upsample (method , limit = limit , fill_value = fill_value )
1793
1790
1794
1791
ax = self .ax
@@ -1860,12 +1857,12 @@ def _resampler_cls(self):
1860
1857
return TimedeltaIndexResampler
1861
1858
1862
1859
1863
- def get_resampler (obj : Series | DataFrame , kind = None , ** kwds ) -> Resampler :
1860
+ def get_resampler (obj : Series | DataFrame , ** kwds ) -> Resampler :
1864
1861
"""
1865
1862
Create a TimeGrouper and return our resampler.
1866
1863
"""
1867
1864
tg = TimeGrouper (obj , ** kwds ) # type: ignore[arg-type]
1868
- return tg ._get_resampler (obj , kind = kind )
1865
+ return tg ._get_resampler (obj )
1869
1866
1870
1867
1871
1868
get_resampler .__doc__ = Resampler .__doc__
@@ -1877,7 +1874,6 @@ def get_resampler_for_grouping(
1877
1874
how = None ,
1878
1875
fill_method = None ,
1879
1876
limit : int | None = None ,
1880
- kind = None ,
1881
1877
on = None ,
1882
1878
include_groups : bool = True ,
1883
1879
** kwargs ,
@@ -1887,7 +1883,7 @@ def get_resampler_for_grouping(
1887
1883
"""
1888
1884
# .resample uses 'on' similar to how .groupby uses 'key'
1889
1885
tg = TimeGrouper (freq = rule , key = on , ** kwargs )
1890
- resampler = tg ._get_resampler (groupby .obj , kind = kind )
1886
+ resampler = tg ._get_resampler (groupby .obj )
1891
1887
return resampler ._get_resampler_for_grouping (
1892
1888
groupby = groupby , include_groups = include_groups , key = tg .key
1893
1889
)
@@ -1910,7 +1906,6 @@ class TimeGrouper(Grouper):
1910
1906
"closed" ,
1911
1907
"label" ,
1912
1908
"how" ,
1913
- "kind" ,
1914
1909
"convention" ,
1915
1910
"origin" ,
1916
1911
"offset" ,
@@ -1928,7 +1923,6 @@ def __init__(
1928
1923
how : str = "mean" ,
1929
1924
fill_method = None ,
1930
1925
limit : int | None = None ,
1931
- kind : str | None = None ,
1932
1926
convention : Literal ["start" , "end" , "e" , "s" ] | None = None ,
1933
1927
origin : Literal ["epoch" , "start" , "start_day" , "end" , "end_day" ]
1934
1928
| TimestampConvertibleTypes = "start_day" ,
@@ -1986,7 +1980,6 @@ def __init__(
1986
1980
1987
1981
self .closed = closed
1988
1982
self .label = label
1989
- self .kind = kind
1990
1983
self .convention = convention if convention is not None else "e"
1991
1984
self .how = how
1992
1985
self .fill_method = fill_method
@@ -2024,15 +2017,13 @@ def __init__(
2024
2017
2025
2018
super ().__init__ (freq = freq , key = key , ** kwargs )
2026
2019
2027
- def _get_resampler (self , obj : NDFrame , kind = None ) -> Resampler :
2020
+ def _get_resampler (self , obj : NDFrame ) -> Resampler :
2028
2021
"""
2029
2022
Return my resampler or raise if we have an invalid axis.
2030
2023
2031
2024
Parameters
2032
2025
----------
2033
2026
obj : Series or DataFrame
2034
- kind : string, optional
2035
- 'period','timestamp','timedelta' are valid
2036
2027
2037
2028
Returns
2038
2029
-------
@@ -2048,11 +2039,10 @@ def _get_resampler(self, obj: NDFrame, kind=None) -> Resampler:
2048
2039
return DatetimeIndexResampler (
2049
2040
obj ,
2050
2041
timegrouper = self ,
2051
- kind = kind ,
2052
2042
group_keys = self .group_keys ,
2053
2043
gpr_index = ax ,
2054
2044
)
2055
- elif isinstance (ax , PeriodIndex ) or kind == "period" :
2045
+ elif isinstance (ax , PeriodIndex ):
2056
2046
if isinstance (ax , PeriodIndex ):
2057
2047
# GH#53481
2058
2048
warnings .warn (
@@ -2061,17 +2051,9 @@ def _get_resampler(self, obj: NDFrame, kind=None) -> Resampler:
2061
2051
FutureWarning ,
2062
2052
stacklevel = find_stack_level (),
2063
2053
)
2064
- else :
2065
- warnings .warn (
2066
- "Resampling with kind='period' is deprecated. "
2067
- "Use datetime paths instead." ,
2068
- FutureWarning ,
2069
- stacklevel = find_stack_level (),
2070
- )
2071
2054
return PeriodIndexResampler (
2072
2055
obj ,
2073
2056
timegrouper = self ,
2074
- kind = kind ,
2075
2057
group_keys = self .group_keys ,
2076
2058
gpr_index = ax ,
2077
2059
)
0 commit comments