|
6 | 6 | import pandas as pd |
7 | 7 | import pandas.util.testing as tm |
8 | 8 | import pytest |
9 | | -from pandas import DataFrame, Index, MultiIndex, date_range |
| 9 | +from pandas import Index, MultiIndex, date_range |
10 | 10 | from pandas._libs.tslib import Timestamp |
11 | 11 | from pandas.compat import lrange, range |
12 | 12 | from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike |
@@ -91,82 +91,6 @@ def test_copy_in_constructor(): |
91 | 91 | assert mi.levels[0][0] == val |
92 | 92 |
|
93 | 93 |
|
94 | | -def test_reconstruct_sort(): |
95 | | - |
96 | | - # starts off lexsorted & monotonic |
97 | | - mi = MultiIndex.from_arrays([ |
98 | | - ['A', 'A', 'B', 'B', 'B'], [1, 2, 1, 2, 3] |
99 | | - ]) |
100 | | - assert mi.is_lexsorted() |
101 | | - assert mi.is_monotonic |
102 | | - |
103 | | - recons = mi._sort_levels_monotonic() |
104 | | - assert recons.is_lexsorted() |
105 | | - assert recons.is_monotonic |
106 | | - assert mi is recons |
107 | | - |
108 | | - assert mi.equals(recons) |
109 | | - assert Index(mi.values).equals(Index(recons.values)) |
110 | | - |
111 | | - # cannot convert to lexsorted |
112 | | - mi = pd.MultiIndex.from_tuples([('z', 'a'), ('x', 'a'), ('y', 'b'), |
113 | | - ('x', 'b'), ('y', 'a'), ('z', 'b')], |
114 | | - names=['one', 'two']) |
115 | | - assert not mi.is_lexsorted() |
116 | | - assert not mi.is_monotonic |
117 | | - |
118 | | - recons = mi._sort_levels_monotonic() |
119 | | - assert not recons.is_lexsorted() |
120 | | - assert not recons.is_monotonic |
121 | | - |
122 | | - assert mi.equals(recons) |
123 | | - assert Index(mi.values).equals(Index(recons.values)) |
124 | | - |
125 | | - # cannot convert to lexsorted |
126 | | - mi = MultiIndex(levels=[['b', 'd', 'a'], [1, 2, 3]], |
127 | | - labels=[[0, 1, 0, 2], [2, 0, 0, 1]], |
128 | | - names=['col1', 'col2']) |
129 | | - assert not mi.is_lexsorted() |
130 | | - assert not mi.is_monotonic |
131 | | - |
132 | | - recons = mi._sort_levels_monotonic() |
133 | | - assert not recons.is_lexsorted() |
134 | | - assert not recons.is_monotonic |
135 | | - |
136 | | - assert mi.equals(recons) |
137 | | - assert Index(mi.values).equals(Index(recons.values)) |
138 | | - |
139 | | - |
140 | | -def test_reconstruct_remove_unused(): |
141 | | - # xref to GH 2770 |
142 | | - df = DataFrame([['deleteMe', 1, 9], |
143 | | - ['keepMe', 2, 9], |
144 | | - ['keepMeToo', 3, 9]], |
145 | | - columns=['first', 'second', 'third']) |
146 | | - df2 = df.set_index(['first', 'second'], drop=False) |
147 | | - df2 = df2[df2['first'] != 'deleteMe'] |
148 | | - |
149 | | - # removed levels are there |
150 | | - expected = MultiIndex(levels=[['deleteMe', 'keepMe', 'keepMeToo'], |
151 | | - [1, 2, 3]], |
152 | | - labels=[[1, 2], [1, 2]], |
153 | | - names=['first', 'second']) |
154 | | - result = df2.index |
155 | | - tm.assert_index_equal(result, expected) |
156 | | - |
157 | | - expected = MultiIndex(levels=[['keepMe', 'keepMeToo'], |
158 | | - [2, 3]], |
159 | | - labels=[[0, 1], [0, 1]], |
160 | | - names=['first', 'second']) |
161 | | - result = df2.index.remove_unused_levels() |
162 | | - tm.assert_index_equal(result, expected) |
163 | | - |
164 | | - # idempotent |
165 | | - result2 = result.remove_unused_levels() |
166 | | - tm.assert_index_equal(result2, expected) |
167 | | - assert result2.is_(result) |
168 | | - |
169 | | - |
170 | 94 | def test_from_arrays(idx): |
171 | 95 | arrays = [] |
172 | 96 | for lev, lab in zip(idx.levels, idx.labels): |
|
0 commit comments