ホームページ >バックエンド開発 >Python チュートリアル >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 サイトの他の関連記事を参照してください。