Groupby を使用した合計に対する Pandas の割合
特定の州のオフィスごとの売上の割合の計算は、Pandas の groupby を使用して実行できます。ただし、望ましい結果を達成するには追加の手順が必要です。
州、オフィス ID、売上を表す列を含む CSV ファイルがあるとします。 Pandas をインポートして DataFrame を作成できます:
import pandas as pd 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)]})
各オフィスと州の総売上高を計算するには、これらの列でグループ化できます:
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
割合を計算するには特定の州のオフィスごとの売上高を表す場合、州ごとにグループ化し、各オフィスの売上を州の合計で割る関数を適用できます。 sales:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
これにより、各オフィスの売上のパーセンテージを含む DataFrame が生成されます:
print(state_pcts) sales state office_id AZ 2 16.981365 4 19.250033 6 63.768601 CA 1 19.331879 3 33.858747 5 46.809373 CO 1 36.851857 3 19.874290 5 43.273852 WA 2 34.707233 4 35.511259 6 29.781508
このメソッドは、特定の州のオフィスごとの売上のパーセンテージを効果的に計算します。 groupby の州レベルまで到達して、州全体の売上を合計します。
以上がPandas Groupby を使用して各州内のオフィスごとの売上高の割合を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。