我的数据集的列名称总计为付款,其中包括从100美元到1000美元的付款,有些付款是100.05美元,102美元或104.05美元,这使得它更加困难。如果该行例如$ 97,那么我想创建一个类别低于100美元或100到200之间的列。
我编写了类似的东西;
但输出如下,所有行都说800到900之间;
请支持这些人。
答案 0 :(得分:2)
您可以使用pandas.cut 考虑这个虚拟df
df = pd.DataFrame({'Total_payments': [97, 110, 100.5, 370, 820, 600]})
您可以使用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
编辑:根据@Mikhail Venkov建议的标签参数更新答案