让我说一下,我正在寻找的是肯定是而不是已定义的DataFrameGroupBy.keys
属性。这个属性与我所追求的东西不同。
这篇文章标题的基本原理是,当迭代pandas
DataFrameGroupBy
个对象时,迭代器会在每次迭代时产生一个对,它强烈地让人联想到密钥 - 迭代dict.items()
时生成的值对。我想要的是这些伪键值对中的“键”,可以这么说;因此,我正在寻找DataFrameGroupBy
- 相当于dict.keys
(再次, 不 DataFrameGroupBy.keys
)。< / p>
对于dict
,人们可以通过这样的折扣和错综复杂的方式获得钥匙
keys = [k for k, _ in d.items()]
...但是,当然,这是不必要的,因为dict
已经通过其keys
方法公开了这些信息。因此,keys = d.keys()
是所有人需要的。
同样地,我可以通过做一些折磨和错综复杂的事情来获得我想要的钥匙,如
keys = [k for k, _ in g] # for some DataFrameGroupBy object g
...但我希望DataFrameGroupBy
不需要这些杂技,就像dict
那样。
答案 0 :(得分:4)
如果你发现[k for k, _ in g]
“折磨和错综复杂”,那么我不确定我们是否有相同的标准..无论如何,我认为你所追求的信息可以在几个地方找到。
>>> df = pd.DataFrame({"A": [1,2,1,0.8], "B": [1,2,3,9], "C": [0,1,2,3]})
>>> df
A B C
0 1.0 1 0
1 2.0 2 1
2 1.0 3 2
3 0.8 9 3
>>> g = df.groupby("A")
>>> [k for k, _ in g]
[0.8, 1.0, 2.0]
>>> g.groups
{1.0: [0, 2], 2.0: [1], 0.80000000000000004: [3]}
>>> g.groups.keys()
[1.0, 2.0, 0.80000000000000004]
>>> set(g.groups)
set([1.0, 2.0, 0.80000000000000004])
我认为g.indices
也是result_index
。如果您关心订单,可以使用>>> g.grouper.result_index
Index([0.8, 1.0, 2.0], dtype=object)
:
{{1}}