Python 在pandas中使用多索引迭代序列的子级别

Python 在pandas中使用多索引迭代序列的子级别,python,pandas,Python,Pandas,这类似于 有更好的方法迭代子序列吗 df = pd.DataFrame([[1,1,1], [1,2,1], [1,2,2], [2,1,1], [2,2,1], [2,3,1], [2,3,2], [2,3,3]], columns=['a', 'b', 'c']) g = df.groupby(['a', 'b']).size() for label in g.index.levels[0]: print(la

这类似于

有更好的方法迭代子序列吗

df = pd.DataFrame([[1,1,1], [1,2,1], [1,2,2],
                   [2,1,1], [2,2,1], [2,3,1], [2,3,2], [2,3,3]],
                  columns=['a', 'b', 'c'])
g = df.groupby(['a', 'b']).size()
for label in g.index.levels[0]:
    print(label)
    print(g[label])
这将提供:

1
b
1    1
2    2
dtype: int64
2
b
1    1
2    1
3    3
dtype: int64
类似于以下伪代码:

for label, series in g.get_sub_series(level = 0):
    print(label)
    print(series)

可能
对于标签,g.groupby(level=0)中的系列
?我应该在另一个groupby+快速计数的结果系列上使用groupby吗?这不会重新计算组吗?数据帧可能是~300MB。300MB对于熊猫来说不应该太大,也可能是您可以先尝试groupby('b'),然后针对每个子组尝试groupby('a')。我不知道你想做什么,这是我的建议。@Psidom:是的,300 MiB就可以了。我的问题是再次做同样的工作(分组),考虑到数据量,这需要一些时间。是的,我可以先按b分组。这不是问题所在。我的原始帖子中的代码完成了这项工作。我想知道如何在不重新计算任何内容和不进行n次哈希查找的情况下(如果可能的话)在多索引系列中迭代级别0。通过这种方式,我学到了一些关于熊猫的新知识:)