2
数値をクォンタイルでグループ化し、クォンタイルバンドに入る値の合計の列を作成しようとしています。ここでは単純化され、再現性の例です:パンダ:agg値を持つgroupby分位数
raw_data = {'female': [0, 1, 0, 1, 0, 1, 0, 1],
'male': [1, 0, 1, 0, 1, 0, 1, 0],
'number': [25000, 34000, 48600, 22000, 50000, 21000, 29000, 36000]}
df = pd.DataFrame(raw_data, columns = ['female', 'male', 'number'])
df
female male number
0 0 1 25000
1 1 0 34000
2 0 1 48600
3 1 0 22000
4 0 1 50000
5 1 0 21000
6 0 1 29000
7 1 0 36000
は基本的に私はこれを達成しようとしています:
pd.DataFrame(df['number'].quantile([.1, .2, .3, .4, .5]))
number
0.1 21700
0.2 23200
0.3 25400
0.4 28200
0.5 31500
しかし、このデータフレームでは、2つの新しい列を表示します。数字が対応する分位帯に該当する男性の合計と女性の合計で1つです。
は当初、私はこれが追加さ.quantile([values])
と
groupby
だろうと思ったし、その後
.agg({'male': 'sum', 'female':'sum'})
しかしこれは動作しません。私が達成しようとしていることさえできますか?あなたがグループを作成するために
pd.qcut
を使用したい
これは素晴らしいですが、「数を維持する方法があります'列だけでなく、私の最初のデータフレームごとに、分位数を観測することができます。 – RDJ