2017-10-19 4 views
0

私は$ 100から$ 1000の支払いを含む支払いの合計列名を持つデータセットを持っていますが、$ 100.05、$ 102または104.05の支払いがあります。たとえば、$ 97以下の行を作成する場合は、100ドル未満または100〜200未満のカテゴリを持つ列を作成します。既存のデータフレームに新しいカテゴリを作成するにはどうすればよいですか?

このようなコードを作成しました。

Code Screenshot

が、出力はすべての行が800と900の間に言って、次のとおりです。

Output Screenshot

この人々にサポートしてください。

+1

コードの画像を投稿しない理由について[こちらを読む](https://meta.stackoverflow.com/a/285557/5241032)[https://stackoverflow.com/ヘルプ/ mcve)について最小限で完全で検証可能な例を作成します。 – cmaher

答えて

1

あなたはpd.cutに

labels = ['<100', '100-200','200-300','300-400','400-500','500-600','600-700','700-800','800-900'] 
df['Brackets'] = pd.cut(df['Total_payments'], \ 
bins = np.arange(0, df['Total_payments'].max()+100, 100), labels = labels) 


    Total_payments Brackets 
0 97.0   <100 
1 110.0   100-200 
2 100.5   100-200 
3 370.0   300-400 
4 820.0   800-900 
5 600.0   500-600 

編集使用してブラケットの列を追加することができます

df = pd.DataFrame({'Total_payments': [97, 110, 100.5, 370, 820, 600]}) 

DFこのダミーを考えてみましょう pandas.cut使用することができますによって提案されたラベルパラメータを使用して答えを更新します@Mikhail Venkov

+1

'labels'パラメータを使用して、ビンのラベルとして使用する文字列のリストを渡すこともできます。また、ビンは、均等に配置されていない境界のリストにすることもできます。 –

関連する問題