假设我有一个多索引,如何计数索引的记录?更明确地说,我指的是X,Y是我在下面的例子中的多个索引。假设我在这个数据框架中有3个个体。如何找到它们,因为数据的长度给出了总行,这不是我想要的。
Modules
X Y
1 11 A
11 B
11 C
2 13 A
13 B
3 17 A
17 B
17 D如何计算这个多索引的长度?
发布于 2017-08-31 13:36:22
选项1
df.index.to_series().nunique()
3选项2
df.groupby(df.index.names).ngroups
# df.groupby(level=df.index.names).ngroups
# for pandas < 0.20 or if column name conflict
3发布于 2018-11-25 18:28:58
那麽:
len(df.groupby(level=0))其优点是代码更简洁,而且实际上可以指定要在其上执行此操作的多索引df的级别。
发布于 2020-06-13 00:28:41
我认为最易读的(可能也是最快的)计数方法是:
len(df.index.levels[0])请注意,如果您有一个非唯一的索引,它将计数超过一次每个值。所以你必须使用:
len(df.index.levels[0].unique())https://stackoverflow.com/questions/45972388
复制相似问题