什么是`DataFrameGroupBy`-相当于`dict.keys`?

时间:2013-02-19 01:56:11

标签: pandas

让我说一下,我正在寻找的是肯定是而不是已定义的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那样。

1 个答案:

答案 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}}