pandas-08 pd.cut()的功能和作用
pandas-08 pd.cut()的功能和作用
pd.cut()的作用,有点类似给成绩设定优良中差,比如:0-59分为差,60-70分为中,71-80分为优秀等等,在pandas中,也提供了这样一个方法来处理这些事儿。直接上代码:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
np.random.seed(666)
score_list = np.random.randint(25, 100, size=20)
print(score_list)
# [27 70 55 87 95 98 55 61 86 76 85 53 39 88 41 71 64 94 38 94]
# 指定多个区间
bins = [0, 59, 70, 80, 100]
score_cut = pd.cut(score_list, bins)
print(type(score_cut)) # <class 'pandas.core.arrays.categorical.Categorical'>
print(score_cut)
'''
[(0, 59], (59, 70], (0, 59], (80, 100], (80, 100], ..., (70, 80], (59, 70], (80, 100], (0, 59], (80, 100]]
Length: 20
Categories (4, interval[int64]): [(0, 59] < (59, 70] < (70, 80] < (80, 100]]
'''
print(pd.value_counts(score_cut)) # 统计每个区间人数
'''
(80, 100] 8
(0, 59] 7
(59, 70] 3
(70, 80] 2
dtype: int64
'''
df = DataFrame()
df['score'] = score_list
df['student'] = [pd.util.testing.rands(3) for i in range(len(score_list))]
print(df)
'''
score student
0 27 1ul
1 70 yuK
2 55 WWK
3 87 EU6
4 95 Vqn
5 98 KAf
6 55 QNT
7 61 HaE
8 86 aBo
9 76 MMa
10 85 Ctc
11 53 5BI
12 39 wBp
13 88 WMB
14 41 q5t
15 71 MjZ
16 64 nTc
17 94 Kyx
18 38 Rlh
19 94 2uV
'''
# 使用cut方法进行分箱
print(pd.cut(df['score'], bins))
'''
0 (0, 59]
1 (59, 70]
2 (0, 59]
3 (80, 100]
4 (80, 100]
5 (80, 100]
6 (0, 59]
7 (59, 70]
8 (80, 100]
9 (70, 80]
10 (80, 100]
11 (0, 59]
12 (0, 59]
13 (80, 100]
14 (0, 59]
15 (70, 80]
16 (59, 70]
17 (80, 100]
18 (0, 59]
19 (80, 100]
Name: score, dtype: category
Categories (4, interval[int64]): [(0, 59] < (59, 70] < (70, 80] < (80, 100]]
'''
df['Categories'] = pd.cut(df['score'], bins)
print(df)
'''
score student Categories
0 27 1ul (0, 59]
1 70 yuK (59, 70]
2 55 WWK (0, 59]
3 87 EU6 (80, 100]
4 95 Vqn (80, 100]
5 98 KAf (80, 100]
6 55 QNT (0, 59]
7 61 HaE (59, 70]
8 86 aBo (80, 100]
9 76 MMa (70, 80]
10 85 Ctc (80, 100]
11 53 5BI (0, 59]
12 39 wBp (0, 59]
13 88 WMB (80, 100]
14 41 q5t (0, 59]
15 71 MjZ (70, 80]
16 64 nTc (59, 70]
17 94 Kyx (80, 100]
18 38 Rlh (0, 59]
19 94 2uV (80, 100]
'''
# 但是这样的方法不是很适合阅读,可以使用cut方法中的label参数
# 为每个区间指定一个label
df['Categories'] = pd.cut(df['score'], bins, labels=['low', 'middle', 'good', 'perfect'])
print(df)
'''
score student Categories
0 27 1ul low
1 70 yuK middle
2 55 WWK low
3 87 EU6 perfect
4 95 Vqn perfect
5 98 KAf perfect
6 55 QNT low
7 61 HaE middle
8 86 aBo perfect
9 76 MMa good
10 85 Ctc perfect
11 53 5BI low
12 39 wBp low
13 88 WMB perfect
14 41 q5t low
15 71 MjZ good
16 64 nTc middle
17 94 Kyx perfect
18 38 Rlh low
19 94 2uV perfect
'''
pandas-08 pd.cut()的功能和作用的更多相关文章
- pandas模块实现小爬虫功能-转载
pandas模块实现小爬虫功能 安装 pip3 install pandas 爬虫代码 import pandas as pd df = pd.read_html("http://www.a ...
- pandas,pd.ExcelWriter保存结果到已存在的excel文件中
背景:pandas支持将DataFrame数据直接保存到excel中 保存的case如下: import pandas as pd with pd.ExcelWriter('a.xls') as ...
- pd.qcut, pd.cut, df.groupby()等在分组和聚合方面的应用
pd.qcut, pd.cut, df.groupby()等在分组和聚合方面的应用 量化交易里, 需要进行大量的分组和统计, 以方便自己处优势的位置/机会. 比如对股价进行趋势分析, 波动性分析, 量 ...
- Eventlog Analyzer日志管理系统、日志分析工具、日志服务器的功能及作用
Eventlog Analyzer日志管理系统.日志分析工具.日志服务器的功能及作用 Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机.服务器.网络设 ...
- pandas.DataFrame——pd数据框的简单认识、存csv文件
接着前天的豆瓣书单信息爬取,这一篇文章看一下利用pandas完成对数据的存储. 回想一下我们当时在最后得到了六个列表:img_urls, titles, ratings, authors, detai ...
- Pandas | 08 重建索引
重新索引会更改DataFrame的行标签和列标签. 可以通过索引来实现多个操作: 重新排序现有数据以匹配一组新的标签. 在没有标签数据的标签位置插入缺失值(NA)标记. import pandas a ...
- 4G DTU模块的功能和作用是什么
4G DTU模块我们可以简单将它理解为使用4G无线通信网络来进行远距离无线传送的终端设备.4G DTU模块基于4G方式进行远距离的数据传输,是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据 ...
- css clip样式 属性功能及作用
clip clip 在学前端的小伙伴前,估计是很少用到的,代码中也是很少看见的,但是,样式中有这样的代码,下面让我们来讲讲他吧! 这个我也做了很久的开发没碰到过这个属性,知道我在一个项目中,有一个功能 ...
- Java中this的功能与作用
粗粒度上来说,Java中关键字this主要有2个功能: 1.表示“当前对象”的引用 (1)作为参数传入 [程序实例1] public class MyObject { public Integer v ...
随机推荐
- 微信token介绍
这里的微信token 有以下三种 1.小程序的token (appid+appsecret=token) 2.一个是第三方平台token(comment_appid+comment_appsecre ...
- 转载:【TP5.0】TP5 Validate 验证规则
下面是部分tp5内置的验证规则: 格式验证类: 'name'=>'require' 验证某个字段的值是否为数字(采用filter_var验证),例如: number 或者 integer 'na ...
- Spring Cloud(一)简单的微服务集成Eureka
1 Spring Cloud简介 1.1 简介 Spring Cloud项目的官方网址:https://projects.spring.io/spring-clo ...
- 【GMT43智能液晶模块】例程二十二:USB_HID实验——双向数据传输
源代码下载链接: 链接:https://pan.baidu.com/s/1iSAUQnHoLI3WRPm-DimeSA 提取码:69vp 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43 ...
- 使用Python解压zip、rar文件
解压 zip 文件 基本解压操作 import zipfile ''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...
- 多用户同时操作一条Mysql记录问题
场景:两个用户同时读取了数据库中的一条记录,此时用户A对其中一个字段的值进行了修改操作并进行了提交,后来用户B也对这个字段进行了修改,用户B的提交将会覆盖用户A提交的值 关于乐观锁和悲观锁 悲观锁:每 ...
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案使用详情功能-通道配置Excel导入导出
使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但是,如果手 ...
- NuxtJS实战,一个博客系统
前言 这个项目诞生于17年5月,距今已有两年多了,在这两年期间经历了很多变更,从简单到复杂,又从复杂到简单,并且以后一直会保持这种简单状态.最近迎来了一次更新,因此特意分享一下.虽然只有我一个人使用( ...
- centos7 替换为 aliyun 源
1.打开centos的yum文件夹 输入命令cd /etc/yum.repos.d/ 2.用wget下载repo文件 输入命令wget http://mirrors.aliyun.com/repo ...
- jquery实现比较靠谱的手风琴代码
比较靠谱的手风琴代码<pre><!DOCTYPE html><html><head> <meta charset="utf-8" ...