ホームページ >バックエンド開発 >Python チュートリアル >Pandas を使用して各州内のオフィスごとの売上高の割合を計算するにはどうすればよいですか?
Pandas の Groupby を使用した合計の割合
州内の各オフィスが寄与する売上の割合を計算するには、Pandas で微妙なアプローチが必要です。 「州」と「office_id」で単純にグループ化すると、各オフィスの売上高の合計が得られますが、州内の寄与率は得られません。
これを実現するには、まず groupby を作成する必要があります。 「state」と「office_id」に基づくオブジェクト。これにより、各オフィスと州の組み合わせの総売上高を含む売上列を含むデータフレームが得られます。
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
パーセンテージを計算するには、各オフィスの売上高をその州の総売上高で割ることができます。ただし、groupby 内の各州の総売上高にアクセスするには、「state」に基づいて 2 番目の groupby オブジェクトを作成する必要があります。
state_total = df.groupby('state').agg({'sales': 'sum'})
このオブジェクトを使用すると、次のようにして「state_office」 groupby を拡張できます。各オフィスと州の組み合わせの売上のパーセンテージを含む新しい列:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(state_total.loc[x.name]))
「groupby」の「level=0」パラメータに注意してください。 「state」と「office_id」の元の groupby によって形成されたマルチレベル インデックスの最上位を指します。
このアプローチにより、各オフィスの売上パーセンテージが、それぞれの州内の総売上高を参照して計算されるようになります。 .
以上がPandas を使用して各州内のオフィスごとの売上高の割合を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。