2017-07-21 1 views
2

データフレームには1つの数値列のみがあり、descを注文してください。python pandasデータフレームを列の値でデシールする方法、そして各デシールを合計する方法はありますか?

私が得たいのは、10行の新しいデータフレームです.1行は最小10%値の合計で、10行は最大10%値の合計です。

私はこれを非平凡な方法で計算することができますが、これを達成するにはファッションとピジョンソニックの方法が必要です。

助けが必要ですか?

ありがとうございます!

答えて

5

あなたはpd.qcutでこれを行うことができます:pandas`は全く驚いて、持ってい

df = pd.DataFrame({'A':np.random.randn(100)}) 

# pd.qcut(df.A, 10) will bin into deciles 
# you can group by these deciles and take the sums in one step like so: 
df.groupby(pd.qcut(df.A, 10))['A'].sum() 
# A 
# (-2.662, -1.209] -16.436286 
# (-1.209, -0.866] -10.348697 
# (-0.866, -0.612] -7.133950 
# (-0.612, -0.323] -4.847695 
# (-0.323, -0.129] -2.187459 
# (-0.129, 0.0699] -0.678615 
# (0.0699, 0.368]  2.007176 
# (0.368, 0.795]  5.457153 
# (0.795, 1.386]  11.551413 
# (1.386, 3.664]  20.575449 

pandas.qcut documentation

+2

美しい...物事 'ことを! –

+0

ありがとう、これは私が探しているものです。 – Windtalker

関連する問題