Я хотел бы, чтобы полностью удалить уровень из MultiIndex
Удалить уровень из панд мультииндексных
import pandas as pd
tuples = [(0, 100, 1000),(0, 100, 1001),(0, 100, 1002), (1, 101, 1001)]
index_3levels=pd.MultiIndex.from_tuples(tuples,names=["l1","l2","l3"])
print index_3levels.levels
[Int64Index([0, 1], dtype=int64), Int64Index([100, 101], dtype=int64), Int64Index([1000, 1001, 1002], dtype=int64)]
Я хотел бы, чтобы извлечь первые 2 уровня, для достижения:
print index_2levels
MultiIndex
[(0, 100), (1, 101)]
droplevel
капель уровень сохраняется, но сохраняется дубликат:
print index_3levels.droplevel("l3")
MultiIndex
[(0, 100), (0, 100), (0, 100), (1, 101)]
Я мог бы в принципе рассчитывать l unique
, чтобы удалить их. Однако это не выглядит правильным. Есть ли более прямой метод?
Еще одна идея может быть улучшением уникальности для возврата объекта того же класса. –
Спасибо, однако мне интересно, есть ли лучшее решение, которое не требует запуска 'unique', что довольно дорого. В конце концов я просто хочу как-то извлечь 2 уровня из 3 в 'MultiIndex', а не создать новый объект. –
уникально на самом деле довольно быстро здесь; Какова ваша конечная цель? – Jeff