Pandas分箱/离散化cut()与qcut()的区别





Pandas提供了智能剪贴功能:pd.cut()pd.qcut(),它们通常用于更方便直观地处理关系型或标签型数据,将数据进行分箱/离散化

1、pd.cut()


我们可以通过两种方式使用cut()函数:直接指定bin的数量,让Pandas为我们计算等大小的bin,或者我们可以按照自己的意愿手动指定bin的边缘

cut()函数中,bin边缘的间距大小是相等的,每个bin或箱中的元素数量不均匀。例如,如果对年龄进行分箱,0-1岁是婴儿,1-12岁是孩子,12-18岁是青少年,18-60岁是成年人,60岁以上是老年人。所以我们可以设置:

bins=[0, 1, 12, 18, 60, 140]
labels=['infant', 'kid', 'teenager', 'grownup', 'senior citizen']

cut()的API如下:

pd.cut(x,bins,right,labels,retbins,precision,include_lowest,duplicates,ordered)

其参数及说明如下:

  • x:需要进行分箱的数据,1D数组或系列类型,如果数据存在NaN则报错
  • bins:分箱的边界,如果是单个整数,则表示基于数据中的最小值和最大值生成等间距间隔;也可以是自定义边界值的列表或数组
  • right:是否包含最右边的数值,默认为True(右闭)
  • labels:分箱的标签,长度保持与分箱数一致
  • retbins:是否显示分箱的边界值,默认为False。当bins为整数时设置True可以显示边界值
  • precision:分箱边界的精度,默认3位小数
  • include_lowest:是否包含最左边的数值,默认为False(左开)
  • duplicates:默认为raise,如果分箱的边界不唯一,则引发ValueError;指定drop则去重
  • ordered:标签是否有序,默认为True,分类结果将被排序

以下是一个使用示例:

import pandas as pd
import numpy as np

# 数据准备
years = [2024, 2023,<
  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值