Return index with requested level(s) removed. If resulting index has only 1 level left, the result will be of Index type, not MultiIndex. The original index is not modified inplace. Parameters ---------- level : int, str, or list-like, default 0
(self, level: IndexLabel = 0)
| 2243 | |
| 2244 | @final |
| 2245 | def droplevel(self, level: IndexLabel = 0): |
| 2246 | """ |
| 2247 | Return index with requested level(s) removed. |
| 2248 | |
| 2249 | If resulting index has only 1 level left, the result will be |
| 2250 | of Index type, not MultiIndex. The original index is not modified inplace. |
| 2251 | |
| 2252 | Parameters |
| 2253 | ---------- |
| 2254 | level : int, str, or list-like, default 0 |
| 2255 | If a string is given, must be the name of a level |
| 2256 | If list-like, elements must be names or indexes of levels. |
| 2257 | |
| 2258 | Returns |
| 2259 | ------- |
| 2260 | Index or MultiIndex |
| 2261 | Returns an Index or MultiIndex object, depending on the resulting index |
| 2262 | after removing the requested level(s). |
| 2263 | |
| 2264 | See Also |
| 2265 | -------- |
| 2266 | Index.dropna : Return Index without NA/NaN values. |
| 2267 | |
| 2268 | Examples |
| 2269 | -------- |
| 2270 | >>> mi = pd.MultiIndex.from_arrays( |
| 2271 | ... [[1, 2], [3, 4], [5, 6]], names=["x", "y", "z"] |
| 2272 | ... ) |
| 2273 | >>> mi |
| 2274 | MultiIndex([(1, 3, 5), |
| 2275 | (2, 4, 6)], |
| 2276 | names=['x', 'y', 'z']) |
| 2277 | |
| 2278 | >>> mi.droplevel() |
| 2279 | MultiIndex([(3, 5), |
| 2280 | (4, 6)], |
| 2281 | names=['y', 'z']) |
| 2282 | |
| 2283 | >>> mi.droplevel(2) |
| 2284 | MultiIndex([(1, 3), |
| 2285 | (2, 4)], |
| 2286 | names=['x', 'y']) |
| 2287 | |
| 2288 | >>> mi.droplevel("z") |
| 2289 | MultiIndex([(1, 3), |
| 2290 | (2, 4)], |
| 2291 | names=['x', 'y']) |
| 2292 | |
| 2293 | >>> mi.droplevel(["x", "y"]) |
| 2294 | Index([5, 6], dtype='int64', name='z') |
| 2295 | """ |
| 2296 | if not isinstance(level, (tuple, list)): |
| 2297 | level = [level] |
| 2298 | |
| 2299 | levnums = sorted((self._get_level_number(lev) for lev in level), reverse=True) |
| 2300 | |
| 2301 | return self._drop_level_numbers(levnums) |
| 2302 |
no test coverage detected