|
1 | 1 | import numpy as np
|
2 | 2 | import pytest
|
3 | 3 |
|
4 |
| -from pandas import DataFrame, Int64Index, MultiIndex |
| 4 | +from pandas import DataFrame, Float64Index, Int64Index, MultiIndex |
5 | 5 | import pandas._testing as tm
|
6 | 6 |
|
7 | 7 |
|
@@ -128,15 +128,21 @@ def test_partial_set(self, multiindex_year_month_day_dataframe_random_data):
|
128 | 128 | df["A"].iloc[14] = 5
|
129 | 129 | assert df["A"].iloc[14] == 5
|
130 | 130 |
|
131 |
| - def test_getitem_int_leading_level( |
132 |
| - self, multiindex_year_month_day_dataframe_random_data |
| 131 | + @pytest.mark.parametrize("dtype", [int, float]) |
| 132 | + def test_getitem_intkey_leading_level( |
| 133 | + self, multiindex_year_month_day_dataframe_random_data, dtype |
133 | 134 | ):
|
134 | 135 | # GH#33355 dont fall-back to positional when leading level is int
|
135 | 136 | ymd = multiindex_year_month_day_dataframe_random_data
|
| 137 | + levels = ymd.index.levels |
| 138 | + ymd.index = ymd.index.set_levels([levels[0].astype(dtype)] + levels[1:]) |
136 | 139 | ser = ymd["A"]
|
137 | 140 | mi = ser.index
|
138 | 141 | assert isinstance(mi, MultiIndex)
|
139 |
| - assert isinstance(mi.levels[0], Int64Index) |
| 142 | + if dtype is int: |
| 143 | + assert isinstance(mi.levels[0], Int64Index) |
| 144 | + else: |
| 145 | + assert isinstance(mi.levels[0], Float64Index) |
140 | 146 |
|
141 | 147 | assert 14 not in mi.levels[0]
|
142 | 148 | assert not mi.levels[0]._should_fallback_to_positional()
|
|
0 commit comments