按级别分组 Pandas

Groupby Level Pandas

我正在尝试使用 Spyder 中的级别参数来理解 Pandas 中的 Groupby 函数。

   def print_groups(groupobject):
        for name, group in groupobject:
            print (name)
            print (group.head())

我有关于从 2012 年 1 月开始一直到 2012 年 12 月的两个交易品种的数据。我已将变量 mi 的索引设置为“交易品种”、“年”和“月”。

mi = s4g.set_index(['Symbol','Year','Month'])
mi

我想做的是使用 group(level=0) 参数,发现当我 运行 这行代码时,只有数据集的前五行出现。

mig_11 = mi.groupby(level=0)
print_groups(mig_11)

我发现当我使用 level = 1 时会发生同样的事情。

mig_11a = mi.groupby(level=1)
print_groups(mig_11a)

即使我将其更改为 level = 2,我仍然能看到前 5 行。

mig_11b = mi.groupby(level=2)
print_groups(mig_11b)

mig_11b 的第二张照片 在此处输入图片描述

我只是不明白,当原始数据一直持续到 12 月时,为什么我会看到每个 groupby 级别的前五行。

非常感谢。

感谢@coldspeed。

我需要在下面的代码中将 print (group.head()) 替换为 print (group) 以查看整个数据集。

def print_groups(groupobject):
    for name, group in groupobject:
        print (name)
        print (group.head())#Replace with print (group)