0

让我直接说我正在寻找的绝对不是已经定义的DataFrameGroupBy.keys属性。这个属性与我所追求的不同。

这篇文章标题的基本原理是,当迭代一个pandas DataFrameGroupBy对象时,迭代器在每次迭代中都会产生一个,这强烈地让人想起迭代时生成的键值对dict.items()。我想要的是这些伪键值对中的“键”;因此,我正在寻找 -DataFrameGroupBy等效项dict.keys(同样不是 DataFrameGroupBy.keys)。

对于dict's,一个人可以用这样的折磨和复杂的东西来获得钥匙

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

4

1 回答 1

5

如果您发现[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)
于 2013-02-19T02:18:25.567 回答