如何获取GroupBy对象的列名?该对象不提供列属性。我可以先聚合对象或使用get_group()方法提取DataFrame,但如果有被删除的列(例如字符串),这可能是一个耗电的黑客或容易出错。
答案 0 :(得分:5)
查看__getitem__
的源代码,似乎可以使用
g.obj.columns
其中g是groupby对象。显然g.obj
链接到DataFrame。
答案 1 :(得分:0)
正如艾汉所说, g.obj.columns 确实返回列,但返回数据帧。 返回的组对象列 g.any().columns 不一样。
具体来说,g.any().columns 不包含用于创建 groupby 的列,而 g.obj.columns 包含。
因此,如果这种差异与您有关,则取决于结果的使用模型。就我而言,我可以不那么迂腐,但对于可分发的一段代码,您可能需要精确。
In [109]: ww.grp.any().columns
Out[109]:
Index(['inode', 'size', 'drvid', 'path', 'hash', 'ftype', 'id', 'md5',
'parent', 'top'],
dtype='object')
In [110]: ww.grp.any().index.name
Out[110]: 'file'
In [111]: ww.grp.obj.columns
Out[111]:
Index(['inode', 'size', 'drvid', 'path', 'hash', 'ftype', 'file', 'id', 'md5',
'parent', 'top'],
dtype='object')