ホームページ >バックエンド開発 >Python チュートリアル >Pandas Groupby を使用してオフィスごとの総売上高の割合を計算する方法は?

Pandas Groupby を使用してオフィスごとの総売上高の割合を計算する方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-12 19:19:14162ブラウズ

How to Calculate the Percentage of Total Sales per Office Using Pandas Groupby?

Pandas Groupby を使用した総売上高の割合の計算

特定の州内の各オフィスの総売上高の割合を計算するには、Pandas の変革力を活用できます。グループバイ操作。詳細を見ていきましょう。

state、office_id、sales の 3 つの列を含む CSV ファイルについて考えてみましょう。データを州と office_id でグループ化し、売上を集計するには、 df.groupby(['state', 'office_id']).agg({'sales': 'sum'}).

df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
                   'office_id': list(range(1, 7)) * 2,
                   'sales': [np.random.randint(100000, 999999)
                             for _ in range(12)]})

df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
この操作により、一意の (state、office_id) の組み合わせごとに売上の合計が計算されるグループ化されたデータフレームが生成されます。

総売上の割合を決定するには各オフィスでは、次の戦略を実装できます。

変革アプローチ

変革の変革力を紹介します。これを売上列に適用し、各州内の売上高の合計で割ります。

df['sales'] / df.groupby('state')['sales'].transform('sum')
この変換により、パーセンテージを含むデータフレームが生成され、それぞれの州内の総売上高に対する各オフィスの売上高の割合がリストされます。 .

マルチグループ化アプローチ

あるいは、それぞれの売上列に基づいて新しいグループ化されたオブジェクトを作成することもできます。 (州、office_id) グループ。次に、新しくグループ化された列の合計で除算します。

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))
このアプローチでは、パーセンテージ値を含む同様の DataFrame が得られますが、追加レベルのグループ化が必要です。

どちらの方法も効果的です。それぞれの州内の総売上高に対する各オフィスの寄与率を計算します。これらのテクニックを理解することで、グループ化されたデータから新しい洞察を得ることができます!

以上がPandas Groupby を使用してオフィスごとの総売上高の割合を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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