ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy は名前ごとのフルーツの合計をどのように計算できますか?

Pandas GroupBy は名前ごとのフルーツの合計をどのように計算できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-23 06:02:19150ブラウズ

How Can Pandas GroupBy Calculate Total Fruits per Name?

Pandas Group-By: Determining Fruit Totals by Name

データ操作シナリオでは、指定された基準に基づいてデータを集計する必要がよくあります。 。 Pandas の groupby メソッドは、データをグループ化し、さまざまな集計を実行するための強力なソリューションを提供します。この記事では、groupby を使用して、指定されたデータセット内の各名前のフルーツの合計を計算する方法を説明します。

問題ステートメント:

フルーツを表す列を持つデータフレームが与えられたとします。 、日付、名前、および数値:

import pandas as pd

df = pd.DataFrame({
    'Fruit': ['Apples', 'Apples', 'Apples', 'Apples', 'Apples', 'Oranges', 'Oranges', 'Oranges', 'Oranges', 'Oranges', 'Grapes', 'Grapes', 'Grapes', 'Grapes', 'Grapes'],
    'Date': ['10/6/2016', '10/6/2016', '10/6/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/6/2016', '10/6/2016', '10/6/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016'],
    'Name': ['Bob', 'Bob', 'Mike', 'Steve', 'Bob', 'Bob', 'Tom', 'Mike', 'Bob', 'Tony', 'Bob', 'Tom', 'Bob', 'Bob', 'Tony'],
    'Number': [7, 8, 9, 10, 1, 2, 15, 57, 65, 1, 1, 87, 22, 12, 15]
})

解決策:

各名前の果物の合計を計算するには、次の手順に従います:

result_df = df.groupby(['Fruit', 'Name'])['Number'].sum()

この操作「Fruit」列と「Name」列の両方でデータをグループ化し、合計を計算して「Number」列を集計します。出力は、「フルーツ」と「名前」の組み合わせごとにフルーツの総数を含むデータフレームになります。

結果:

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

               Number
Fruit   Name         
Apples  Bob        16
        Mike        9
        Steve      10
Grapes  Bob        35
        Tom        87
        Tony       15
Oranges Bob        67
        Mike       57
        Tom        15
        Tony        1

集計のために特定の列を指定する必要がある場合、次の構文を使用できます。使用:

result_df = df.groupby(['Name', 'Fruit'])['Number'].sum()

Pandas の groupby 関数と sum 関数を使用すると、データを効果的にグループ化および集計して大規模なデータセットから有意義な洞察を得ることができ、データの探索と分析のための強力なツールになります。

以上がPandas GroupBy は名前ごとのフルーツの合計をどのように計算できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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