pandas中GroupBy对象的属性

问题描述 投票:-1回答:1

我相信这段代码可以访问 名称群体 我相信这段代码可以使用迭代器访问名称和组的属性,但是,我还可以访问GroupBy对象的哪些其他属性,除了这两个之外,我在哪里可以找到GroupBy对象的属性,因为我在pandas文档中没有找到它们。

for name, group in GroupBy:
python pandas pandas-groupby
1个回答
1
投票

GroupBy 返回一个 GroupBy对象,它不仅是一个含有 key/group 元组,但作为一个对象,你可以将其参数作为属性来访问。

我们以下面的数据框架为例。

df = pd.DataFrame({'a':[1,2,3,2,2,3], 'b':[1,2,3,3,2,1]})

如前所述,通过对返回的对象进行迭代,我们得到了... key/group 元组,这些元组根据数据帧的 key:

g = df.groupby('a')
key, group = next(iter(g))

print(key)
# 1

print(group)
   a  b
0  1  1

这是由其返回的内容。__iter__ 杜德: next(g.__iter__()),这就要求 get_iterator:

def get_iterator(self, data: FrameOrSeries, axis: int = 0):
    """
    Groupby iterator
    Returns
    -------
    Generator yielding sequence of (name, subsetted object)
    for each group
    """
    splitter = self._get_splitter(data, axis=axis)
    keys = self._get_group_keys()
    for key, (i, group) in zip(keys, splitter):
        yield key, group

可以像访问其他对象一样访问其属性。

g.__dict__
{'_selection': None,
 'level': None,
 'as_index': True,
 'keys': 'a',
 'sort': True,
 'group_keys': True,
 'squeeze': False,
 'observed': False,
 'mutated': False,
 'obj':    a  b
 0  1  1
 1  2  2
 2  3  3
 3  2  3
 4  2  2
 5  3  1,
 'axis': 0,
 'grouper': <pandas.core.groupby.ops.BaseGrouper at 0x17399312eb0>,
 'exclusions': {'a'}}

g.sort
# True
© www.soinside.com 2019 - 2024. All rights reserved.