将数值数据更改为分类数据 - 熊猫

时间:2017-10-10 05:18:51

标签: python pandas numpy dataframe

我有一个pandas数据框,其数字列为" amount"。数量从0到20000不等。我想将其更改为定义范围的分类变量。因此,分类变量将是:

  1. 0-1000 $
  2. 之间
  3. 1000-2000美元等等......直到19000-20000 $
  4. 我无法弄清楚如何更改列。我可以将其更改为二进制值,如下所示:

    months["value"] = np.where(months['amount']>=450, 'yes', 'no') 
    

    但是,如何对具有2个以上值的分类变量进行处理?

1 个答案:

答案 0 :(得分:5)

您可以使用cut

df = pd.DataFrame({'B':[4000,5000,4000,9000,5,11040]})

df['D'] = pd.cut(df['B'], range(0, 21000, 1000))
print (df)
       B               D
0   4000    (3000, 4000]
1   5000    (4000, 5000]
2   4000    (3000, 4000]
3   9000    (8000, 9000]
4      5       (0, 1000]
5  11040  (11000, 12000]