Muszę wiedzieć, ile poziomów znajduje się w ramce danych, nie wiedząc, czy ta ramka danych ma indeks Multi-index lub „Normal”.
Zakładając ramkę danych df
i zmienna nb_levels
aby utrzymać wynik, mogę wykonać następujące czynności, jeśli ramka danych ma wiele indeksów:
>>> nb_levels = len(df.index[0])
nb_levels = 2
zakładając 2-poziomowy multi-index
Mogę uzyskać taki pożądany rezultat:
try:
df.index.get_level_values(1)
nb_levels = 1
except:
nb_levels = len(df.index[0])
Ale wydaje mi się, że to straszny hack i na pewno musi być prosty sposób na uzyskanie tego wyniku. Problem polega na tym, że nie mogę go znaleźć. Pomoc?
Odpowiedzi:
21 dla odpowiedzi № 1Każda ramka danych ma atrybut o liczbie poziomów:
nblevels = df.index.nlevels