pandas数据离散化 get_dummies()

pandas 数据离散化

离散化

  • 0 准备数据
  • 1 分组
  • 2 离散化(转化为one-hot编码)
import pandas as pd

# 原始数据
height_list = [165, 174, 160, 180, 159, 163, 192, 184]
# 准备数据
data = pd.Series(height_list)
data
0    165
1    174
2    160
3    180
4    159
5    163
6    192
7    184
dtype: int64

第一步: 分组

(1) 自动分组 qcut(series数据, 组数量)

# 自动分组 
sr = pd.qcut(data, 3)
# 分组后数据所在的区间
sr
0      (163.667, 178.0]
1      (163.667, 178.0]
2    (158.999, 163.667]
3        (178.0, 192.0]
4    (158.999, 163.667]
5    (158.999, 163.667]
6        (178.0, 192.0]
7        (178.0, 192.0]
dtype: category
Categories (3, interval[float64]): [(158.999, 163.667] < (163.667, 178.0] < (178.0, 192.0]]
查看每组内的数量value_counts()
# 查看每组内的数量
sr.value_counts()
(178.0, 192.0]        3
(158.999, 163.667]    3
(163.667, 178.0]      2
dtype: int64

(2)自动分组 cut(series数据, [区间值])

sr_cut = pd.cut(data, [150, 165, 180, 195])
sr_cut.value_counts()
(150, 165]    4
(180, 195]    2
(165, 180]    2
dtype: int64
pd.get_dummies(sr_cut, prefix='自定义身高')
自定义身高_(150, 165]自定义身高_(165, 180]自定义身高_(180, 195]
0100
1010
2100
3010
4100
5100
6001
7001

第二步: 进行离散化 get_dummies(分组好的数据, prefix="前缀")

  • 就是把分组好的数据转化为 one-hot编码或者又叫哑变量
# 将分组好的数据转化为 one-hot 编码
pd.get_dummies(sr, prefix='自动身高')
自动身高_(158.999, 163.667]自动身高_(163.667, 178.0]自动身高_(178.0, 192.0]
0010
1010
2100
3001
4100
5100
6001
7001
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值