假设我有以下数据框:
df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Bar=[1, 2, 3, 4]))
即:
Bar Foo
0 1 A
1 2 A
2 3 B
3 4 B
然后我创建了一个pandas.GroupBy对象:
g = df.groupby('Foo')
我如何从g
获得g
按最初名为Foo
的列分组的事实?
如果我g.groups
我得到:
{'A': Int64Index([0, 1], dtype='int64'),
'B': Int64Index([2, 3], dtype='int64')}
告诉我Foo
列的值(' A' B')但不是原始列名。
现在,我可以做类似的事情:
g.first().index.name
但似乎奇怪的是,g
的属性中没有组名,所以我觉得我必须遗漏一些东西。特别是,如果g
按多列分组,则上述操作无效:
df = pd.DataFrame(dict(Foo=['A', 'A', 'B', 'B'], Baz=['C', 'D', 'C', 'D'], Bar=[1, 2, 3, 4]))
g = df.groupby(['Foo', 'Baz'])
g.first().index.name # returns None, because it's a MultiIndex
g.first().index.names # returns ['Foo', 'Baz']
对于上下文,我正在尝试使用分组数据框进行一些绘图,并且我希望能够使用该组的名称以及组标签来标记每个构面(正在绘制单个组)。< / p>
有更好的方法吗?
答案 0 :(得分:3)
查询PS> (Get-Item C:\root\Public\mytextfile.txt).Target
C:\root\Public\myothertextfile.txt
以获取所有石斑鱼的列表:
GroupBy.BaseGrouper.names
由此给出,
df.groupby('Foo').grouper.names