相关文章推荐
痛苦的双杠  ·  python读取和保存json文件_pyth ...·  3 周前    · 
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组·  3 周前    · 
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/ ...·  2 周前    · 
开朗的枕头  ·  精通 Oracle+Python,第 3 ...·  2 周前    · 
温文尔雅的青蛙  ·  python subprocess模块详解 ...·  1 周前    · 
有腹肌的竹笋  ·  拖不得了,Android11真的来了,最全适 ...·  1 年前    · 
跑龙套的筷子  ·  java判断字符串不为空和null的方法_判 ...·  1 年前    · 
被表白的书签  ·  linux文件按时间排序怎么弄-掘金·  1 年前    · 
帅气的松鼠  ·  深度学习:根据 loss曲线,对模型调参 ...·  2 年前    · 
Code  ›  盘一盘 Python 特别篇 22 - 分箱之 cut开发者社区
python
https://cloud.tencent.com/developer/article/1694017
直爽的毛衣
2 年前
作者头像
用户5753894
0 篇文章

盘一盘 Python 特别篇 22 - 分箱之 cut

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 王的机器 > 盘一盘 Python 特别篇 22 - 分箱之 cut

盘一盘 Python 特别篇 22 - 分箱之 cut

作者头像
用户5753894
发布 于 2020-09-08 15:07:50
730 0
发布 于 2020-09-08 15:07:50
举报
当要
  • qcut 分组后保证每组含有的 数据几乎一样多 ,每组的边界会被反算出来
  • cut 自定义每组的边界 ,每组组含有的数据个数不同

首先引入要用到的工具包:

import pandas as pd
import numpy as np
import seaborn as sns
sns.set_style('whitegrid')

数据

本贴继续使用 上贴 的数据,回顾一下是 2018 年的销售数据。接下来用 info(), head(), tail() 几个函数来看看数据集的大小、行标签和列标签。

raw_df = pd.read_excel('sales.xlsx')
raw_df.info()
raw_df.head(3).append(raw_df.tail(3))

将其按 account number 和 name 分组,并对 ext price 加总得到:

df = raw_df.groupby(['account number', 'name'])['ext price'].sum().reset_index()
df.inf()
df

cut

在实际案例中,可通过业务规则定义箱。就拿新加坡航空公司飞行会员计划,25,000 英里是银卡 (silver) 而 50,000 英里是金卡 (gold),并且它 不会根据数据的年度变化而变化 。如果我们要定义箱边界 (25,000, 50,000),我们就不能使用 qcut 而是 cut 了,因为后者可以自定义箱边界。

首先将数据分成四个箱,注意每个箱的上界和下界之差为 32,265。

pd.cut(df['ext price'], bins=4)

我们来看看每组的分布,很显然每组含的数据个数分别是 12,5,2,1,都不一样。这就是 cut 和 qcut 最重要的差别。

pd.cut(df['ext price'], bins=4).value_counts()

接下来定义箱的确切边界,通过设置参数 bins 即可。

cut_labels_4 = ['silver', 'gold', 'platinum', 'diamond']
 
推荐文章
痛苦的双杠  ·  python读取和保存json文件_python json 保存 编码
3 周前
冷冷的草稿本  ·  txt文件转数组_python读取txt为数组
3 周前
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/csv读取关键字 - Wilson_Blogs
2 周前
开朗的枕头  ·  精通 Oracle+Python,第 3 部分:数据解析
2 周前
温文尔雅的青蛙  ·  python subprocess模块详解 - 三只松鼠
1 周前
有腹肌的竹笋  ·  拖不得了,Android11真的来了,最全适配实践指南奉上-腾讯云开发者社区-腾讯云
1 年前
跑龙套的筷子  ·  java判断字符串不为空和null的方法_判断不为空-CSDN博客
1 年前
被表白的书签  ·  linux文件按时间排序怎么弄-掘金
1 年前
帅气的松鼠  ·  深度学习:根据 loss曲线,对模型调参 | AI技术聚合
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号