キーでパンダのグループ化データフレームにアクセスする方法

beardc:

キーでgroupbyオブジェクトの対応するgroupbyデータフレームにアクセスするにはどうすればよいですか?

次のgroupbyを使用します。

rand = np.random.RandomState(1)
df = pd.DataFrame({'A': ['foo', 'bar'] * 3,
                   'B': rand.randn(6),
                   'C': rand.randint(0, 20, 6)})
gb = df.groupby(['A'])

反復してキーとグループを取得できます。

In [11]: for k, gp in gb:
             print 'key=' + str(k)
             print gp
key=bar
     A         B   C
1  bar -0.611756  18
3  bar -1.072969  10
5  bar -2.301539  18
key=foo
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14

キーでグループにアクセスできるようにしたい:

In [12]: gb['foo']
Out[12]:  
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14

しかし、これを試してみるgb[('foo',)]と、この奇妙なpandas.core.groupby.DataFrameGroupByオブジェクトが表示されます。これには、必要なDataFrameに対応するメソッドがないようです。

私が考えることができる最高のものは:

In [13]: def gb_df_key(gb, key, orig_df):
             ix = gb.indices[key]
             return orig_df.ix[ix]

         gb_df_key(gb, 'foo', df)
Out[13]:
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14  

しかし、これはパンダが通常これらのことにどれほど素晴らしいかを考えると、ちょっと厄介です。
これを行う組み込みの方法は何ですか?

アンディ・ヘイデン:

次のget_group方法を使用できます

In [21]: gb.get_group('foo')
Out[21]: 
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14

注:これは、すべてのグループのすべてのサブデータフレームの中間ディクショナリ/コピーを作成する必要がないため、を使用して単純なディクショナリを作成するよりもはるかにメモリ効率が高くなりますdict(iter(gb))これは、groupbyオブジェクトですでに使用可能なデータ構造を使用しているためです。


groupbyスライスを使用して別の列を選択できます。

In [22]: gb[["A", "B"]].get_group("foo")
Out[22]:
     A         B
0  foo  1.624345
2  foo -0.528172
4  foo  0.865408

In [23]: gb["C"].get_group("foo")
Out[23]:
0     5
2    11
4    14
Name: C, dtype: int64

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スコアリストをバケット化し、パンダデータフレームの日付で効果的にグループ化する方法

分類Dev

共通のキーに基づいてパンダのデータフレームをグループ化する

分類Dev

列のグループをパンダデータフレームにスタックする方法は?

分類Dev

パンダのデータフレームをループし、データでグループ化する

分類Dev

グループ化されたインデックスごとにパンダグループバイデータフレームにアクセスするにはどうすればよいですか?

分類Dev

パンダ、multiIndexデータフレームにアクセスする方法は?

分類Dev

パンダのマルチインデックスデータフレームをすべてのインデックスでグループ化する

分類Dev

Python:パンダのデータフレームを特定の時間枠でグループ化する方法は?

分類Dev

Python:パンダのデータフレームを特定の時間枠でグループ化する方法は?

分類Dev

珍しい方法でパンダのデータフレームをグループ化する

分類Dev

外部データフレームのデータにアクセスしてプライマリデータフレームに戻す方法パンダ

分類Dev

Python-パンダデータフレームのリストに行をグループ化する

分類Dev

プロットするためにパンダのデータフレームをクォーターでグループ化します

分類Dev

データフレーム行をパンダグループバイのリストにグループ化する方法は?

分類Dev

パンダの多重指数データフレームの特定の行にアクセスする方法

分類Dev

時系列ランキングテーブルをパンダデータフレームPythonで個々のランクテーブルに変換する方法

分類Dev

パンダデータフレームからのmsアクセスで複数の行を更新する方法

分類Dev

パンダのデータフレームでグループごとにt検定する方法は?

分類Dev

列内のタグのリストによってパンダデータフレーム行をグループ化する効率的な方法

分類Dev

行でグループ化するときにパンダデータフレームの辞書をマージする方法

分類Dev

マルチインデックスのグループ化されたパンダデータフレームをフィルタリングする

分類Dev

パンダのデータフレームをセルタイプでフィルタリングする

分類Dev

データフレームをフィルタリングしていますが、パンダシリーズの番号にアクセスできません

分類Dev

パンダデータフレームの列にアクセスする適切な方法

分類Dev

パンダのデータフレームにアクセスする正しい方法

分類Dev

列の内部インデックスに基づいてパンダのデータフレームをグループ化する

分類Dev

リストの列の要素によるパンダデータフレームのグループ化

分類Dev

グループ化のキーに基づいてパンダのデータフレームフィールドを編集する

分類Dev

クラスとタイムスタンプによるパンダのデータフレームのグループ化

Related 関連記事

  1. 1

    スコアリストをバケット化し、パンダデータフレームの日付で効果的にグループ化する方法

  2. 2

    共通のキーに基づいてパンダのデータフレームをグループ化する

  3. 3

    列のグループをパンダデータフレームにスタックする方法は?

  4. 4

    パンダのデータフレームをループし、データでグループ化する

  5. 5

    グループ化されたインデックスごとにパンダグループバイデータフレームにアクセスするにはどうすればよいですか?

  6. 6

    パンダ、multiIndexデータフレームにアクセスする方法は?

  7. 7

    パンダのマルチインデックスデータフレームをすべてのインデックスでグループ化する

  8. 8

    Python:パンダのデータフレームを特定の時間枠でグループ化する方法は?

  9. 9

    Python:パンダのデータフレームを特定の時間枠でグループ化する方法は?

  10. 10

    珍しい方法でパンダのデータフレームをグループ化する

  11. 11

    外部データフレームのデータにアクセスしてプライマリデータフレームに戻す方法パンダ

  12. 12

    Python-パンダデータフレームのリストに行をグループ化する

  13. 13

    プロットするためにパンダのデータフレームをクォーターでグループ化します

  14. 14

    データフレーム行をパンダグループバイのリストにグループ化する方法は?

  15. 15

    パンダの多重指数データフレームの特定の行にアクセスする方法

  16. 16

    時系列ランキングテーブルをパンダデータフレームPythonで個々のランクテーブルに変換する方法

  17. 17

    パンダデータフレームからのmsアクセスで複数の行を更新する方法

  18. 18

    パンダのデータフレームでグループごとにt検定する方法は?

  19. 19

    列内のタグのリストによってパンダデータフレーム行をグループ化する効率的な方法

  20. 20

    行でグループ化するときにパンダデータフレームの辞書をマージする方法

  21. 21

    マルチインデックスのグループ化されたパンダデータフレームをフィルタリングする

  22. 22

    パンダのデータフレームをセルタイプでフィルタリングする

  23. 23

    データフレームをフィルタリングしていますが、パンダシリーズの番号にアクセスできません

  24. 24

    パンダデータフレームの列にアクセスする適切な方法

  25. 25

    パンダのデータフレームにアクセスする正しい方法

  26. 26

    列の内部インデックスに基づいてパンダのデータフレームをグループ化する

  27. 27

    リストの列の要素によるパンダデータフレームのグループ化

  28. 28

    グループ化のキーに基づいてパンダのデータフレームフィールドを編集する

  29. 29

    クラスとタイムスタンプによるパンダのデータフレームのグループ化

ホットタグ

アーカイブ