想象一下我有一个输出分组数据帧的函数。我现在想找出这个 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:没关系,那个案例不是我想象的那样。我的问题已经得到解答。
你可以使用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)