小编最近入坑风控,在工作中需要对数据进行等频率切分,也就是将数据划分成几段,在每段中,数据的出现频率,出现次数是大致相同的,让数据集在每段上呈现出分布均匀的趋势。

小编先是想到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 等频率切分数据相关推荐

  1. python数据按照分组进行频率分布_python实现读取类别频数数据画水平条形图

    1.数据分组-->频数分布表 环境配置: 1 importpandas as pd2 importnumpy as np3 import matplotlib.pyplot as plt 按照你 ...

  2. python爬取虎扑评论_python爬取网站数据

    编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲起.原本的英文编码只有0~255,刚好是8位1个字节.为了表示各种不同的语言,自然要进行 ...

  3. python读取数据的函数详解_python如何从文件读取数据及解析

    python如何从文件读取数据及解析 读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, ...

  4. python获取数据库返回的结果_python 查数据库的数据返回的是没有数据?

    def process_item(self, item, spider): print('打印的文件地址和名字为') print(item['file_url'], item['name']) key ...

  5. python读取txt文件存储数组_python – 从文本文件中将数据读入numpy数组

    我有一个包含一些元数据的文件,然后是一些由2列标题组成的实际数据.在numpy中使用genfromtxt之前,我是否需要分离这两种类型的数据?或者我可以以某种方式拆分数据吗?将文件指针放在标题上方的行 ...

  6. mysql查询一周内数据并分组_mysql 统计本周7天的数据并分组

    今天写到项目的一个数据展示模块,最终要呈现的效果是用柱状图显示本周七天的访客数量,所以要给前端本周7天的数据 比如今天是周二(实际上也是),我们要给前端周一周二的数据,后面周三到周日因为还没到,数据置 ...

  7. python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果

    我就废话不多说了,直接贴代码,注意要先安装folium #-*-coding:utf8-*- #输入data生成热力图html,借助了leaflet,没网不能用 import os import fo ...

  8. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  9. python爬取json简单吗_Python爬取Json数据的示例

    Python教程栏目介绍爬取Json数据实例 相关免费学习推荐:python教程(视频) 本文中以爬取其中的AI流转率数据为例. 该地址返回的响应内容为Json类型,其中红框标记的项即为AI流转率值: ...

最新文章

  1. oracle数据库赋权_oracle数据库用户之间授权
  2. 《iOS 8案例开发大全》——实例006 实现复杂的查找和替代工作
  3. VTK:可视化之CreateColorSeries
  4. [ZJOI2007]时态同步 树形DP
  5. php上传图片并显示代码,php图片上传代码(完整版已测试)
  6. 2680 Problem F: Coin Game
  7. Centos6.X 安装MongoDb
  8. NTC热敏电阻测试和检验设备
  9. AMD yes! 平民炬丹师的卡皇Radeon VII,老年博士生的丹房修建记录:Rocm 3.1+ pytorch 1.4+tensorflow 2+tensorflow 1.15.2 折腾记
  10. 打不死的小强(找实习面试篇)
  11. 给自己一个拼搏的理由
  12. VX_Ipad协议和Mac协议
  13. 解决word转PDF文件时图片位置改变和字体格式改变的问题
  14. 极验验证的滑动验证码破解
  15. 30条人生经验分享~(摘录)
  16. ②(常识篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
  17. 软件开发顶尖高手的杀手锏SQL语句
  18. JAVA设计模式 - 单例与工厂模式
  19. Mac u盘加密没有 日志式加密选项
  20. 算法之牛顿法求平方根+立方根

热门文章

  1. 50-000-040-配置-MAC 安装MySQL my.cnf配置文件
  2. 【jvm】jvm优化 jvm linux 大页
  3. 06-netty之http之文件服务器
  4. hive-02-hive文件存储格式
  5. canal 入门(2)
  6. 为什么强烈不推荐使用stop、suspend方法来中断线程?
  7. 简单的控制台五子小游戏棋程序(Java)
  8. Java 中的异常处理
  9. IView的Form表单自定义验证需注意事项
  10. leetcode题解538-把二叉搜索树转化为累加树