@cache_readonly
    def groups(self):
        if len(self.groupings) == 1:
            return self.groupings[0].groups
        else:
            to_groupby = lzip(*(ping.grouper for ping in self.groupings))
            to_groupby = Index(to_groupby)
            return self.axis.groupby(to_groupby.values)
dict {group name -> group labels}
dataset/ETHPy150Open pydata/pandas/pandas/core/groupby.py/BaseGrouper.groups