0

私が探しているのは間違いなく定義済みのDataFrameGroupBy.keys属性ではないということをすぐに言わせてください。この属性は、私が求めているものとは異なる何かを保持しています。

この投稿のタイトルの理論的根拠は、pandas DataFrameGroupByオブジェクトを反復処理するときに、反復処理ごとに、反復処理時に生成されるキーと値のペアを強く連想させるペアを生成することdict.items()です。私が欲しいのは、これらの疑似キーと値のペアの、いわば「キー」です。したがって、私は-に相当するものを探していDataFrameGroupByますdict.keys(これもまた、そうではありません DataFrameGroupBy.keys)。

の場合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います。

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 に答える