Skip to content

Commit 3714e85

Browse files
Terji PetersenTerji Petersen
Terji Petersen
authored and
Terji Petersen
committed
DEPR: don't make Index instantiate Int64/Uint64/Flaot64Index
1 parent e5a8d4f commit 3714e85

File tree

7 files changed

+39
-21
lines changed

7 files changed

+39
-21
lines changed

pandas/tests/apply/test_series_apply.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def test_apply_datetimetz():
186186
# change dtype
187187
# GH 14506 : Returned dtype changed from int32 to int64
188188
result = s.apply(lambda x: x.hour)
189-
exp = Series(list(range(24)) + [0], name="XX", dtype=np.int64)
189+
exp = Series(list(range(24)) + [0], name="XX", dtype=np.int32)
190190
tm.assert_series_equal(result, exp)
191191

192192
# not vectorized
@@ -766,7 +766,7 @@ def test_map_datetimetz():
766766
# change dtype
767767
# GH 14506 : Returned dtype changed from int32 to int64
768768
result = s.map(lambda x: x.hour)
769-
exp = Series(list(range(24)) + [0], name="XX", dtype=np.int64)
769+
exp = Series(list(range(24)) + [0], name="XX", dtype=np.int32)
770770
tm.assert_series_equal(result, exp)
771771

772772
# not vectorized

pandas/tests/frame/indexing/test_indexing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,7 @@ def test_getitem_setitem_float_labels(self, using_array_manager):
736736

737737
# positional slicing only via iloc!
738738
msg = (
739-
"cannot do positional indexing on Float64Index with "
739+
"cannot do positional indexing on NumericIndex with "
740740
r"these indexers \[1.0\] of type float"
741741
)
742742
with pytest.raises(TypeError, match=msg):

pandas/tests/frame/methods/test_set_index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def test_set_index_cast(self):
159159
df = DataFrame(
160160
{"A": [1.1, 2.2, 3.3], "B": [5.0, 6.1, 7.2]}, index=[2010, 2011, 2012]
161161
)
162-
df2 = df.set_index(df.index.astype(np.int32))
162+
df2 = df.set_index(df.index.astype(np.int64))
163163
tm.assert_frame_equal(df, df2)
164164

165165
# A has duplicate values, C does not

pandas/tests/reshape/test_pivot.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,14 @@ def test_pivot_no_values(self):
411411
res = df.pivot_table(index=df.index.month, columns=df.index.day)
412412

413413
exp_columns = MultiIndex.from_tuples([("A", 1), ("A", 2)])
414-
exp = DataFrame([[2.5, 4.0], [2.0, np.nan]], index=[1, 2], columns=exp_columns)
414+
exp_columns = exp_columns.set_levels(
415+
exp_columns.levels[1].astype(np.int32), level=1
416+
)
417+
exp = DataFrame(
418+
[[2.5, 4.0], [2.0, np.nan]],
419+
index=Index([1, 2], dtype=np.int32),
420+
columns=exp_columns,
421+
)
415422
tm.assert_frame_equal(res, exp)
416423

417424
df = DataFrame(
@@ -424,7 +431,9 @@ def test_pivot_no_values(self):
424431
res = df.pivot_table(index=df.index.month, columns=Grouper(key="dt", freq="M"))
425432
exp_columns = MultiIndex.from_tuples([("A", pd.Timestamp("2011-01-31"))])
426433
exp_columns.names = [None, "dt"]
427-
exp = DataFrame([3.25, 2.0], index=[1, 2], columns=exp_columns)
434+
exp = DataFrame(
435+
[3.25, 2.0], index=Index([1, 2], dtype=np.int32), columns=exp_columns
436+
)
428437
tm.assert_frame_equal(res, exp)
429438

430439
res = df.pivot_table(
@@ -1604,7 +1613,7 @@ def test_pivot_dtaccessor(self):
16041613
expected = DataFrame(
16051614
{7: [0, 3], 8: [1, 4], 9: [2, 5]},
16061615
index=exp_idx,
1607-
columns=Index([7, 8, 9], name="dt1"),
1616+
columns=Index([7, 8, 9], dtype=np.int32, name="dt1"),
16081617
)
16091618
tm.assert_frame_equal(result, expected)
16101619

@@ -1614,8 +1623,8 @@ def test_pivot_dtaccessor(self):
16141623

16151624
expected = DataFrame(
16161625
{7: [0, 3], 8: [1, 4], 9: [2, 5]},
1617-
index=Index([1, 2], name="dt2"),
1618-
columns=Index([7, 8, 9], name="dt1"),
1626+
index=Index([1, 2], dtype=np.int32, name="dt2"),
1627+
columns=Index([7, 8, 9], dtype=np.int32, name="dt1"),
16191628
)
16201629
tm.assert_frame_equal(result, expected)
16211630

@@ -1627,10 +1636,16 @@ def test_pivot_dtaccessor(self):
16271636
)
16281637

16291638
exp_col = MultiIndex.from_arrays(
1630-
[[7, 7, 8, 8, 9, 9], [1, 2] * 3], names=["dt1", "dt2"]
1639+
[
1640+
np.array([7, 7, 8, 8, 9, 9], dtype=np.int32),
1641+
np.array([1, 2] * 3, dtype=np.int32),
1642+
],
1643+
names=["dt1", "dt2"],
16311644
)
16321645
expected = DataFrame(
1633-
np.array([[0, 3, 1, 4, 2, 5]], dtype="int64"), index=[2013], columns=exp_col
1646+
np.array([[0, 3, 1, 4, 2, 5]], dtype="int64"),
1647+
index=Index([2013], dtype=np.int32),
1648+
columns=exp_col,
16341649
)
16351650
tm.assert_frame_equal(result, expected)
16361651

pandas/tests/reshape/test_util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def test_datetimeindex(self):
2323
# make sure that the ordering on datetimeindex is consistent
2424
x = date_range("2000-01-01", periods=2)
2525
result1, result2 = (Index(y).day for y in cartesian_product([x, x]))
26-
expected1 = Index([1, 1, 2, 2])
27-
expected2 = Index([1, 2, 1, 2])
26+
expected1 = Index([1, 1, 2, 2], dtype=np.int32)
27+
expected2 = Index([1, 2, 1, 2], dtype=np.int32)
2828
tm.assert_index_equal(result1, expected1)
2929
tm.assert_index_equal(result2, expected2)
3030

pandas/tests/series/accessors/test_dt_accessor.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,14 +229,14 @@ def test_dt_namespace_accessor_index_and_values(self):
229229
dti = date_range("20140204", periods=3, freq="s")
230230
ser = Series(dti, index=index, name="xxx")
231231
exp = Series(
232-
np.array([2014, 2014, 2014], dtype="int64"), index=index, name="xxx"
232+
np.array([2014, 2014, 2014], dtype="int32"), index=index, name="xxx"
233233
)
234234
tm.assert_series_equal(ser.dt.year, exp)
235235

236-
exp = Series(np.array([2, 2, 2], dtype="int64"), index=index, name="xxx")
236+
exp = Series(np.array([2, 2, 2], dtype="int32"), index=index, name="xxx")
237237
tm.assert_series_equal(ser.dt.month, exp)
238238

239-
exp = Series(np.array([0, 1, 2], dtype="int64"), index=index, name="xxx")
239+
exp = Series(np.array([0, 1, 2], dtype="int32"), index=index, name="xxx")
240240
tm.assert_series_equal(ser.dt.second, exp)
241241

242242
exp = Series([ser[0]] * 3, index=index, name="xxx")
@@ -386,7 +386,7 @@ def test_dt_namespace_accessor_categorical(self):
386386
dti = DatetimeIndex(["20171111", "20181212"]).repeat(2)
387387
ser = Series(pd.Categorical(dti), name="foo")
388388
result = ser.dt.year
389-
expected = Series([2017, 2017, 2018, 2018], name="foo")
389+
expected = Series([2017, 2017, 2018, 2018], dtype="int32", name="foo")
390390
tm.assert_series_equal(result, expected)
391391

392392
def test_dt_tz_localize_categorical(self, tz_aware_fixture):
@@ -748,6 +748,7 @@ def test_hour_index(self):
748748
result = dt_series.dt.hour
749749
expected = Series(
750750
[0, 1, 2, 3, 4],
751+
dtype="int32",
751752
index=[2, 6, 7, 8, 11],
752753
)
753754
tm.assert_series_equal(result, expected)

pandas/tests/series/indexing/test_setitem.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,7 +1159,7 @@ def expected(self, val):
11591159
return Series(res_values)
11601160

11611161

1162-
@pytest.mark.parametrize("val", [512, np.int16(512)])
1162+
@pytest.mark.parametrize("val", [np.int16(512), np.int16(512)])
11631163
class TestSetitemIntoIntegerSeriesNeedsUpcast(SetitemCastingEquivalents):
11641164
@pytest.fixture
11651165
def obj(self):
@@ -1174,7 +1174,7 @@ def expected(self):
11741174
return Series([1, 512, 3], dtype=np.int16)
11751175

11761176

1177-
@pytest.mark.parametrize("val", [2**33 + 1.0, 2**33 + 1.1, 2**62])
1177+
@pytest.mark.parametrize("val", [2**30 + 1.0, 2**33 + 1.1, 2**62])
11781178
class TestSmallIntegerSetitemUpcast(SetitemCastingEquivalents):
11791179
# https://github.com/pandas-dev/pandas/issues/39584#issuecomment-941212124
11801180
@pytest.fixture
@@ -1187,10 +1187,12 @@ def key(self):
11871187

11881188
@pytest.fixture
11891189
def expected(self, val):
1190-
if val % 1 != 0:
1190+
if val > np.iinfo(np.int64).max:
11911191
dtype = "f8"
1192-
else:
1192+
elif val > np.iinfo(np.int32).max:
11931193
dtype = "i8"
1194+
else:
1195+
dtype = "i4"
11941196
return Series([val, 2, 3], dtype=dtype)
11951197

11961198

0 commit comments

Comments
 (0)