python数据按照分组进行频率分布_python 等频率切分数据
小编最近入坑风控,在工作中需要对数据进行等频率切分,也就是将数据划分成几段,在每段中,数据的出现频率,出现次数是大致相同的,让数据集在每段上呈现出分布均匀的趋势。
小编先是想到df.describe
cutlist = data[col].describe()
出来的结果是:
描述结果分别就是 计数,均值,标准差,最小,四分位数,最大值
我要的是十分位,那就要借助describe的参数percentiles 了,percentiles 中可以存放切分点的列表
cutlist = data[col].describe(percentiles = [1.0*i/k for i in range(k+1)])
这时候就有十分位数了,再将十分位数取出来,但这个时候会遇到一个问题,在 cutlist["0%":"100%"] 之中,有一些重复的值,比如0%到30%的分位数都是0 ,这样子来做切分数据,是会出错,所以应该对数据进行去重
cutdata = pd.DataFrame(pd.cut(data[score],cutlist["0%":"100%"],include_lowest=True))
后来小编发现一个更加好用的函数 quantile ,顺便用drop_duplicates(keep="last") 去重并保留最后一个重复值
cutlist = data[col].quantile([1.0*i/k for i in range(k+1)],interpolation= "lower").drop_duplicates(keep="last")
quantile值得注意的是他的参数 interpolation ( 插值方法 当所需分位数位于两个数据点i和j之间时,这个可选参数指定要使用的插值方法: ) ,可填选的值为 :‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’
官方文档的解释是: linear :i + (j - i) *分数,其中分数是索引中被 i 和 j 包围的小数部分。
lower: i.
higher: j.
nearest: i or j 取最近的
midpoint: (i + j) / 2. 取中位数
如果不指定插值方法,当出现无法判断的情况时,是不会进行插值的
linear的插值方法example:
比如0.166666 是介于 (0.000000,0.166667 ] 之间 ,索引中被 i 和 j 包围的小数部分就是 0.3和0.4之间的小数部分0.4 ,那么
0.000000+(0.166667 - 0.000000)* 0.4 = 0.0666668
介于(0.000000,0.166667 ] 即被分到(0.000000,0.166667 ] 这段之间了。
以上是小编的想法,仅供参考,有任何新想法欢迎和我讨论!
python数据按照分组进行频率分布_python 等频率切分数据相关推荐
- python数据按照分组进行频率分布_python实现读取类别频数数据画水平条形图
1.数据分组-->频数分布表 环境配置: 1 importpandas as pd2 importnumpy as np3 import matplotlib.pyplot as plt 按照你 ...
- python爬取虎扑评论_python爬取网站数据
编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲起.原本的英文编码只有0~255,刚好是8位1个字节.为了表示各种不同的语言,自然要进行 ...
- python读取数据的函数详解_python如何从文件读取数据及解析
python如何从文件读取数据及解析 读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, ...
- python获取数据库返回的结果_python 查数据库的数据返回的是没有数据?
def process_item(self, item, spider): print('打印的文件地址和名字为') print(item['file_url'], item['name']) key ...
- python读取txt文件存储数组_python – 从文本文件中将数据读入numpy数组
我有一个包含一些元数据的文件,然后是一些由2列标题组成的实际数据.在numpy中使用genfromtxt之前,我是否需要分离这两种类型的数据?或者我可以以某种方式拆分数据吗?将文件指针放在标题上方的行 ...
- mysql查询一周内数据并分组_mysql 统计本周7天的数据并分组
今天写到项目的一个数据展示模块,最终要呈现的效果是用柱状图显示本周七天的访客数量,所以要给前端本周7天的数据 比如今天是周二(实际上也是),我们要给前端周一周二的数据,后面周三到周日因为还没到,数据置 ...
- python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果
我就废话不多说了,直接贴代码,注意要先安装folium #-*-coding:utf8-*- #输入data生成热力图html,借助了leaflet,没网不能用 import os import fo ...
- python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...
python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07
- python爬取json简单吗_Python爬取Json数据的示例
Python教程栏目介绍爬取Json数据实例 相关免费学习推荐:python教程(视频) 本文中以爬取其中的AI流转率数据为例. 该地址返回的响应内容为Json类型,其中红框标记的项即为AI流转率值: ...
最新文章
- oracle数据库赋权_oracle数据库用户之间授权
- 《iOS 8案例开发大全》——实例006 实现复杂的查找和替代工作
- VTK:可视化之CreateColorSeries
- [ZJOI2007]时态同步 树形DP
- php上传图片并显示代码,php图片上传代码(完整版已测试)
- 2680 Problem F: Coin Game
- Centos6.X 安装MongoDb
- NTC热敏电阻测试和检验设备
- AMD yes! 平民炬丹师的卡皇Radeon VII,老年博士生的丹房修建记录:Rocm 3.1+ pytorch 1.4+tensorflow 2+tensorflow 1.15.2 折腾记
- 打不死的小强(找实习面试篇)
- 给自己一个拼搏的理由
- VX_Ipad协议和Mac协议
- 解决word转PDF文件时图片位置改变和字体格式改变的问题
- 极验验证的滑动验证码破解
- 30条人生经验分享~(摘录)
- ②(常识篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
- 软件开发顶尖高手的杀手锏SQL语句
- JAVA设计模式 - 单例与工厂模式
- Mac u盘加密没有 日志式加密选项
- 算法之牛顿法求平方根+立方根