首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用binning将列从浮点数据类型转换为分类数据类型

使用binning将列从浮点数据类型转换为分类数据类型
EN

Stack Overflow用户
提问于 2022-08-31 23:09:57
回答 1查看 110关注 0票数 0

我希望转换一个由两列组成的数据框架。

下面是示例df:

输出:

代码语言:javascript
复制
df:

    cost      numbers   
1    360        23

2    120        35

3    2000       49

这两个列都是浮动的,我希望使用binning将它们转换为分类列。当转换为分类时,我希望为每一列创建以下回收箱。

号码: 18-24,25-44,45-65,66-92

成本栏的回收箱:>=1000,<1000

最后,我不想创建一个新的列,而只是转换该列而不创建一个新的列。下面是我尝试的代码:

代码语言:javascript
复制
def PreprocessDataframe(df):
 
     #use binning to convert age and budget to categorical columns
    df['numbers'] = pd.cut(df['numbers'], bins=[18, 24, 25, 44, 45, 65, 66, 92])
    df['cost'] = pd.cut(df['cost'], bins=['=>1000', '<1000'])
    
    return df

我知道如何转换“数字”栏,但我对“成本”一栏有困难。在如何解决这个问题上,帮助是很好的。提前感谢!干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-31 23:39:27

如果您使用bins=[18, 24, 25, 44, 45, 65, 66, 92],这将生成18-24,24-25,25-44,44-45等.你不需要24-25,44-45.

默认情况下,回收箱是从第一个值(而不是包含性的)到包含在最后一个值的。

因此,对于numbers,您可以使用bins=[17, 24, 44, 65, 92] (请注意第一个位置的17,因此包括18 )。

可选参数label允许为回收箱选择标签。

代码语言:javascript
复制
df['numbers'] = pd.cut(df['numbers'], bins=[17, 24, 44, 65, 92], labels=['18-24', '25-44', '45-65', '66-92'])
df['cost'] = pd.cut(df['cost'], bins=[0, 999.99, df['cost'].max()], labels=['<1000', '=>1000'])

print(df)

>>> df
     cost numbers
0   <1000   18-24
1   <1000   25-44
2  =>1000   45-65
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73562771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档