[Python] 变量重分类(连续变量重分类、离散变量重分类)

目录

1. Python连续变量重分类

1.1 等宽重编码

1.2 等频重编码

2. 离散变量重分类

2.1 分类后为1个指标

2.2 分类后为多个指标

1. Python连续变量重分类

cut(  )函数

新变量 = pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)

# x:待分类的变量
# bins:分段的依据
# right:right=True表示分段后包含右边的数,即左开又闭(X,X]
# labels:分类后新的分类标签,若不修改默认以(X,X]/[X,X) 的格式显示
# 其他参数详见:help(pd.cut)

1.1 等宽重编码

案例 :

一份df格式的2020年的人口数据,数值为连续型,最小值为0,最大值为109695.39。现在需要分段为0,(0,100]、(100,300]、(300,500]、(500,700]、(700,900]、(900,1100]、(1100,1300]、1300及以上9类。

#格式左开右闭,从零开始(XX],bins需要加一个最大值
bins = [0,100,200,300,500,700,900,1100,1300,max(df['2020'])] #10个数,9个空格,产生9类
df['2020分层'] = pd.cut(df['2020'],bins,right=True)

#给重分类结果添加标签
bins = [0,100,200,300,500,700,900,1100,1300,max(Wpop2['2020'])]
df['2020分层'] = pd.cut(df['2020'],bins,right=True,labels=[1,2,3,4,5,6,7,8,9])

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,可以使用Pandas库和NumPy库来区分分类变量连续变量。 对于分类变量,通常是指具有有限数量的离散取值的变量。我们可以使用Pandas的`Categorical`类型来将数据列转换为分类变量,并使用`dtype`参数指定数据类型。 对于连续变量,通常是指具有无限数量的连续取值的变量。我们可以使用NumPy的`float`或`int`类型来将数据列转换为连续变量。 下面是一个示例代码,演示如何使用Pandas和NumPy来区分分类变量连续变量: ```python import pandas as pd import numpy as np # 创建一个包含分类变量连续变量的示例数据集 data = pd.DataFrame({ 'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'gender': ['Female', 'Male', 'Male', 'Male'], 'income': [50000, 60000, 70000, 80000] }) # 将gender列转换为分类变量 data['gender'] = pd.Categorical(data['gender'], categories=['Male', 'Female'], ordered=False) # 将age和income列转换为连续变量 data['age'] = data['age'].astype(np.int64) data['income'] = data['income'].astype(np.float64) # 打印数据集信息 print(data.info()) ``` 输出结果如下: ``` <class 'pandas.core.frame.DataFrame'> RangeIndex: 4 entries, 0 to 3 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 4 non-null object 1 age 4 non-null int64 2 gender 4 non-null category 3 income 4 non-null float64 dtypes: category(1), float64(1), int64(1), object(1) memory usage: 372.0+ bytes None ``` 从结果可以看出,`gender`列被转换为分类变量类型,`age`列被转换为整数类型,`income`列被转换为浮点数类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禾木页

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值