0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

有关中位数计算是什么

汽车电子技术 来源:Python数据分析之旅 作者: cauwfq 2023-02-23 16:22 次阅读

一.项目背景

中位数是数理统计中一个重要的指标,它可以自动忽略数据极差带来的影响,
能够很好的评估数据,在数理统计中很常用。本文主要介绍在Python中和Mysql
中如何来求中位数,重点让大家掌握SQL计算中位数,也是面试常考题目之一。

二.实现过程

1.Python实现
》》创建DataFrame
》》分组计算中位数
import pandas as pd


#创建DataFrame
data=pd.DataFrame(
    {   'company':['A','A','A','A','B','B','B','B','B'],
        'salary':[1057,1874,2059,2268,6587,6637,6932,7415,7654]
    })
#输出分组统计值
print(data.groupby('company')['salary'].median().reset_index().rename({'salary':'median_salary'},axis=1))

poYBAGP3IdSAdN0cAABAu8P4IgI697.png
2.SQL实现
》》统计字段长度
》》按照奇偶长度分别计算字段一半
》》按照字段排序统计顺序
》》筛选所需字段并计算
建表语句:
mysql> create table median_val(
    -> company varchar(20),
    -> salary int)
    -> engine=innodb default charset=utf8;
Query OK, 0 rows affected, 1 warning (0.07 sec)
插入数据:
mysql> insert into median_val(company,salary) values("A",1057),("A",1874),("A",2059),("A",2268),("B",7415),("B",7654),("B",6932),("B",6587),("B",6637);
Query OK, 9 rows affected (0.06 sec)
Records: 9  Duplicates: 0  Warnings: 0
计算中位数:
mysql> select
    -> company,
    -> round(avg(salary),1) as median_salary
    -> from
    -> (select
    -> company,
    -> salary,
    -> count(*) over(partition by company) as num_length,
    -> row_number() over(partition by company order by salary) as ranking,
    -> count(*) over(partition by company) /2 as num_company_even,
    -> ceil(count(*) over(partition by company) /2) as num_company_odd
    -> from
    -> median_val)a
    -> where
    -> (mod(num_length,2)=0 and ranking in (num_length/2,num_length/2+1))
    -> or
    -> (mod(num_length,2)=1 and ranking=ceil(num_length/2))
    -> group by
    -> company;
+---------+---------------+
| company | median_salary |
+---------+---------------+
| A       |        1966.5 |
| B       |        6932.0 |
+---------+---------------+
2 rows in set (0.00 sec)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26006
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83476
  • 位数
    +关注

    关注

    0

    文章

    2

    浏览量

    2349
收藏 人收藏

    评论

    相关推荐

    TC377波特率计算是否与帧大小有关

    brZ 如图 471 所示, 我想知道这个波特率计算是否与帧大小有关? 例如,4 位帧、8 位帧、32 位帧?波特率是指一帧/秒吗? 对于 32 位帧,它是 32 位/秒?
    发表于 01-22 06:29

    有关中断代码的疑问

    有关中断代码的疑问当我用op_intrpt_schedule_self(time,code)时,这个中断码是不是自己随便定义的啊,随便是整型数几都可以?以前一直这么理解的,但结果一直不对,仔细看才
    发表于 06-14 18:01

    请问stm32的计算是不是都由FPU来完成?

    stm32的计算是不是都由FPU来完成? 如果不是什么情况下由FPU来算什么情况下有内核来算。
    发表于 09-11 09:32

    stm32的计算是不是都由FPU来完成?

    请问stm32的计算是不是都由FPU来完成?如果不是什么情况下由FPU来算什么情况下有内核来算。
    发表于 10-18 16:28

    请问能否讲解有关中断向量表的知识?

    能否讲解下有关中断向量表的知识
    发表于 05-17 01:13

    边缘计算是指什么?边缘计算的最大优势是什么

      边缘计算是指在生成或收集物联网(IoT)数据的网络“边缘”处或附近发生的处理。结合使用边缘计算和边缘分析(包括人工智能和机器学习)的公司,可以获取有价值的实时洞察,从而获得竞争优势。    边缘
    发表于 07-12 07:18

    量子计算是什么

    量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式。对照于传统的通用计算机,其理论模型是通用图灵机;通用的量子计算机,其理
    的头像 发表于 11-04 10:23 2.7w次阅读

    数据科学家需要知道的5个基本统计概念,如何才能最有效地应用它们

    中间的那条线是数据的中位数。由于中位数对离群值的鲁棒性更强,因此中位数比平均值用得更多。第一个四分位数本质上是第25百分位数,表示数据中25
    的头像 发表于 11-07 10:57 2156次阅读
    数据科学家需要知道的5个基本统计概念,如何才能最有效地应用它们

    边缘计算是什么?与ARM和云计算有什么关系

    提到边缘计算就不得不提一下云计算。所谓的云计算是指的是通过网络“云”,将庞大的数据处理程序被分解成无数的小程序,然后由多个服务器组成的系统对结果进行处理和分析,并返回给用户。在云计算
    的头像 发表于 11-06 16:36 3954次阅读

    计算是保护数据的关键吗?

    计算是如此强大,因为企业控制某些人可以访问什么数据。企业不仅可以通过密码保护云本身,也可以通过密码保护云计算的不同区域。
    发表于 06-20 11:27 551次阅读

    51单片机4位数简易计算

    51单片机4位数简易计算
    发表于 05-06 11:19 8次下载

    AI边缘计算是什么,为什么5G的发展离不开它

    边缘计算是计算的补充和优化。如果说云计算是“云”化的数据集中处理,那么边缘计算可以理解为在边缘和靠近终端(如屏幕、传感器等智能设备)的位置进行数据处理。在许多情况下,边缘
    发表于 05-07 17:30 400次阅读

    边缘计算是个啥东西

    在互联网时代,每天都有新的概念诞生。就像今天提到的边缘计算。边缘计算,与云计算,是同一个体系下的相对概念。他们的标准化概念各位可以自行百度,通俗的来讲,云计算是公用大脑,边缘
    发表于 05-18 14:44 0次下载
    边缘<b class='flag-5'>计算是</b>个啥东西

    介绍一种基于中位数的离群值检测方法

    Hampel滤波器是一种基于中位数的离群值检测方法,它可以用于消除在数据中存在的离群值。
    的头像 发表于 06-20 17:13 1368次阅读
    介绍一种基于<b class='flag-5'>中位数</b>的离群值检测方法

    SOLIDWORKS仿真计算是什么意思?

    SOLIDWORKS仿真计算是指利用SOLIDWORKS软件进行工程设计和分析时所使用的计算方法和技术。SOLIDWORKS是一款流行的三维计算机辅助设计(CAD)软件,它提供了丰富的工具和功能,使工程师能够创建和模拟各种产品和
    的头像 发表于 09-06 15:42 649次阅读
    SOLIDWORKS仿真<b class='flag-5'>计算是</b>什么意思?