Python - Pandas — 如何检查 DataFrame 是按哪一列分组的?

jwd*_*ink 3 python pandas

想象一下我有一个输出分组数据帧的函数。我现在想找出这个 DataFrame 是按哪一列分组的。我怎样才能做到这一点?

编辑:

这是一些代码:

from pandas import DataFrame
df = DataFrame({'A' : [0, 1, 2],
                'B' : [1, 6, 5],
                'C' : [2, 5, 4]
                 } )
grp = df.groupby('A')
Run Code Online (Sandbox Code Playgroud)

问题是如何判断grp是按A分组的。


下面,约翰-高尔特给出了一个非常有用的答案。然而,我发现了一种情况,如何应用他的解决方案并不是立即显而易见的:使用自定义分组函数。

编辑2:没关系,那个案例不是我想象的那样。我的问题已经得到解答。

Zer*_*ero 5

你可以使用grp.grouper.names

就像,对于数据框

In [47]: df
Out[47]:
   A  B  C
0  0  1  2
1  1  6  5
Run Code Online (Sandbox Code Playgroud)

grp是分组对象

In [48]: grp = df.groupby('A')
Run Code Online (Sandbox Code Playgroud)

用于grouper.names获取列名称。

In [49]: grp.grouper.names
Out[49]: ['A']
Run Code Online (Sandbox Code Playgroud)

此外,grp.grouper对象还有很多其他有用的元数据,您可能会发现它很有用

In [50]: grp.grouper.
grp.grouper.agg_series       grp.grouper.group_info       grp.grouper.names
grp.grouper.aggregate        grp.grouper.group_keys       grp.grouper.ngroups
grp.grouper.apply            grp.grouper.groupings        grp.grouper.nkeys
grp.grouper.axis             grp.grouper.groups           grp.grouper.result_index
grp.grouper.compressed       grp.grouper.indices          grp.grouper.shape
grp.grouper.get_group_levels grp.grouper.labels           grp.grouper.size
grp.grouper.get_iterator     grp.grouper.levels           grp.grouper.sort
Run Code Online (Sandbox Code Playgroud)