Skip to content

Commit 5514aa3

Browse files
authored
Bug: raise TypeError when doing infer_freq using RangeIndex (#48497)
1 parent 94044c8 commit 5514aa3

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

doc/source/whatsnew/v1.6.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ Categorical
124124

125125
Datetimelike
126126
^^^^^^^^^^^^
127-
-
127+
- Bug in :func:`pandas.infer_freq`, raising ``TypeError`` when inferred on :class:`RangeIndex` (:issue:`47084`)
128128
-
129129

130130
Timedelta

pandas/tests/tseries/frequencies/test_inference.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,16 @@ def test_non_datetime_index2():
358358

359359

360360
@pytest.mark.parametrize(
361-
"idx", [tm.makeIntIndex(10), tm.makeFloatIndex(10), tm.makePeriodIndex(10)]
361+
"idx",
362+
[
363+
tm.makeIntIndex(10),
364+
tm.makeFloatIndex(10),
365+
tm.makePeriodIndex(10),
366+
tm.makeRangeIndex(10),
367+
],
362368
)
363369
def test_invalid_index_types(idx):
370+
# see gh-48439
364371
msg = "|".join(
365372
[
366373
"cannot infer freq from a non-convertible",

pandas/tseries/frequencies.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ def infer_freq(index, warn: bool = True) -> str | None:
160160
Float64Index,
161161
Index,
162162
Int64Index,
163+
RangeIndex,
163164
)
164165

165166
if isinstance(index, ABCSeries):
@@ -190,7 +191,7 @@ def infer_freq(index, warn: bool = True) -> str | None:
190191
return inferer.get_freq()
191192

192193
if isinstance(index, Index) and not isinstance(index, DatetimeIndex):
193-
if isinstance(index, (Int64Index, Float64Index)):
194+
if isinstance(index, (Int64Index, Float64Index, RangeIndex)):
194195
raise TypeError(
195196
f"cannot infer freq from a non-convertible index type {type(index)}"
196197
)

0 commit comments

Comments
 (0)