Python/Pandas:数据帧索引中有多少级别?

kni*_*fni 9 python pandas

我需要知道数据帧中有多少级别,而不知道该数据帧是否具有多索引或"正常"索引.

假设有一个数据帧df和一个nb_levels保存结果的变量,如果数据帧有多索引,我可以执行以下操作:

>>> nb_levels = len(df.index[0])    
nb_levels = 2
Run Code Online (Sandbox Code Playgroud)

假设一个2级多指数

所以我可以得到我想要的结果:

try:
    df.index.get_level_values(1)
    nb_levels = 1
except:
    nb_levels = len(df.index[0])
Run Code Online (Sandbox Code Playgroud)

但这感觉就像一个可怕的黑客,当然必须有简单的方法来获得这个结果.问题是我似乎无法找到它.救命 ?

Rut*_*ies 32

每个Dataframe都有一个包含级别数量的属性:

nblevels = df.index.nlevels 
Run Code Online (Sandbox Code Playgroud)