2014-02-19 46 views
5

我需要知道数据帧中有多少级别,而不知道该数据帧是否具有多索引或“正常”索引。Python/Pandas:数据框索引中有多少个级别?

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

>>> nb_levels = len(df.index[0])  
nb_levels = 2 

假定一个2电平的多指数

,所以我可以得到我想要的结果是这样的:

try: 
    df.index.get_level_values(1) 
    nb_levels = 1 
except: 
    nb_levels = len(df.index[0]) 

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

+0

如果'df.index.get_level_values(1)'犯规失败它只意味着水平存在的,它不说一下水平的任何量出现在'df'中。 –

回答

19

每个数据帧都有控股水平的量的属性:

nblevels = df.index.nlevels 
+0

非常感谢Rutger,由于某种原因,我无法在API ref中找到它! – knightofni

相关问题