Python,如何在数据帧中查找子索引中的条目数

Python,如何在数据帧中查找子索引中的条目数,python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,我有这个数据框: 1级索引是STNAME,2级索引是CTYNAME 查找每个级别1索引中包含的条目数的最佳方法是什么?我知道的唯一解决方案是在执行groupby之前重置索引。我在下面制作了一个简单的可复制示例,它必须适应您的用例 这应该行得通,但也许有更好的解决办法。我去看看 # Creating test data np.random.seed(0) df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)),

我有这个数据框:

1级索引是STNAME,2级索引是CTYNAME


查找每个级别1索引中包含的条目数的最佳方法是什么?

我知道的唯一解决方案是在执行
groupby
之前重置索引。我在下面制作了一个简单的可复制示例,它必须适应您的用例

这应该行得通,但也许有更好的解决办法。我去看看

# Creating test data
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), 
                  columns=list('ABCD'))
df = df.set_index(['A', 'B'])

# Reset the index,
# group by the first level and count the number of second level
# nunique can also be used to get the number of unique values

df.reset_index(level=1).groupby(level=0)['B'].count()

# A
# 2    1
# 3    1
# 4    1
# 5    3
# 7    2
# 8    2
编辑 我认为在索引上使用great
value\u counts
方法是一个更好的解决方案

df.reset_index(level=1).index.value_counts()

# 5    3
# 8    2
# 7    2
# 4    1
# 3    1
# 2    1

我知道的唯一解决方案是在执行
groupby
之前重置索引。我在下面制作了一个简单的可复制示例,它必须适应您的用例

这应该行得通,但也许有更好的解决办法。我去看看

# Creating test data
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), 
                  columns=list('ABCD'))
df = df.set_index(['A', 'B'])

# Reset the index,
# group by the first level and count the number of second level
# nunique can also be used to get the number of unique values

df.reset_index(level=1).groupby(level=0)['B'].count()

# A
# 2    1
# 3    1
# 4    1
# 5    3
# 7    2
# 8    2
编辑 我认为在索引上使用great
value\u counts
方法是一个更好的解决方案

df.reset_index(level=1).index.value_counts()

# 5    3
# 8    2
# 7    2
# 4    1
# 3    1
# 2    1