ホームページ >バックエンド開発 >Python チュートリアル >Pandas Groupby を使用して DataFrame 行をリストにグループ化するにはどうすればよいですか?

Pandas Groupby を使用して DataFrame 行をリストにグループ化するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-17 09:38:24347ブラウズ

How Can I Group DataFrame Rows into Lists Using Pandas Groupby?

Pandas GroupBy で DataFrame 行をリストにグループ化する

多くのデータセットには、行全体にわたる冗長な情報が含まれています。意味のある洞察を抽出するには、多くの場合、共通の属性に基づいて行をグループ化する必要があります。これにより、各グループ内のデータの集約と操作が可能になります。この記事では、Pandas groupby でデータフレームの行をリストにグループ化する方法について説明します。

グループ化と集計

2 つの列 'a' と 'b' を持つデータフレームを考えます:

a b
A 1
A 2
B 5
B 5
B 4
C 6

目標は、行を最初の列 ('a') でグループ化し、そのリストを作成することです。各グループの 2 列目 (「b」) の値。望ましい出力は次のとおりです:

A [1,2]
B [5,5,4]
C [6]

これを実現するには、Pandas の groupby 関数と apply 関数を使用します。 groupby 関数は指定された列ごとに行をグループ化し、apply 関数を使用すると各グループに対して操作を実行できます。この場合、list 関数を適用して各グループの値のリストを作成します。

df.groupby('a')['b'].apply(list)

このコードは、各グループの値のリストを含む Series オブジェクトを返します。

a
A       [1, 2]
B    [5, 5, 4]
C          [6]
Name: b, dtype: object

新しいデータフレームの作成

グループ化されたリストを含む新しいデータフレームを作成するには、reset_index 関数を使用して系列を変換します。オブジェクトを新しいデータフレームに追加し、リストを含む列の名前を変更します:

df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')

結果のデータフレームは次のようになります:

   a        new
0  A     [1, 2]
1  B  [5, 5, 4]
2  C        [6]

以上がPandas Groupby を使用して DataFrame 行をリストにグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。