[解決済み】Pandasのgroupbyを使ったパーセント表示について
2022-04-08 11:39:19
質問
これは明らかに簡単なことなのですが、numpyの初心者として行き詰まっています。
州、オフィスID、オフィスの売上高の3つの列を含むCSVファイルを持っています。
ある州のオフィスごとの売上比率を計算したい(各州の全比率の合計が100%)。
df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
'office_id': range(1, 7) * 2,
'sales': [np.random.randint(100000, 999999)
for _ in range(12)]})
df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
これが返ってくる。
sales
state office_id
AZ 2 839507
4 373917
6 347225
CA 1 798585
3 890850
5 454423
CO 1 819975
3 202969
5 614011
WA 2 163942
4 369858
6 959285
に手を伸ばす方法がわからないようです。
state
のレベル
groupby
を合計すると
sales
を使用します。
state
を計算し、分数を算出します。
解き方は?
ポール・Hの回答
を作る必要があるのはその通りです。
groupby
オブジェクトがありますが、もっと簡単な方法でパーセンテージを計算することができます。
groupby
その
state_office
を分割し
sales
の列をその合計で割る。ポールHの答えの冒頭をコピーする。
# From Paul H
import numpy as np
import pandas as pd
np.random.seed(0)
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'})
# Change: groupby state_office and divide by sum
state_pcts = state_office.groupby(level=0).apply(lambda x:
100 * x / float(x.sum()))
を返します。
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
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
-
[解決済み】PandasでSettingWithCopyWarningに対処する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Pythonの@decoratorsについてまとめてみました。
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】再現性の高いpandasのサンプルを作るには?