一.項目背景
中位數(shù)是數(shù)理統(tǒng)計中一個重要的指標,它可以自動忽略數(shù)據(jù)極差帶來的影響,
能夠很好的評估數(shù)據(jù),在數(shù)理統(tǒng)計中很常用。本文主要介紹在Python中和Mysql
中如何來求中位數(shù),重點讓大家掌握SQL計算中位數(shù),也是面試??碱}目之一。
二.實現(xiàn)過程
1.Python實現(xiàn)
》》創(chuàng)建DataFrame
》》分組計算中位數(shù)
import pandas as pd
#創(chuàng)建DataFrame
data=pd.DataFrame(
{ 'company':['A','A','A','A','B','B','B','B','B'],
'salary':[1057,1874,2059,2268,6587,6637,6932,7415,7654]
})
#輸出分組統(tǒng)計值
print(data.groupby('company')['salary'].median().reset_index().rename({'salary':'median_salary'},axis=1))

2.SQL實現(xiàn)
》》統(tǒng)計字段長度
》》按照奇偶長度分別計算字段一半
》》按照字段排序統(tǒng)計順序
》》篩選所需字段并計算
建表語句:
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)
插入數(shù)據(jù):
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
計算中位數(shù):
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)
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
MySQL
+關注
關注
1文章
860瀏覽量
27945 -
python
+關注
關注
56文章
4827瀏覽量
86761 -
位數(shù)
+關注
關注
0文章
3瀏覽量
2506
發(fā)布評論請先 登錄
相關推薦
熱點推薦
TC377波特率計算是否與幀大小有關?
brZ 如圖 471 所示,
我想知道這個波特率計算是否與幀大小有關? 例如,4 位幀、8 位幀、32 位幀?波特率是指一幀/秒嗎? 對于 32 位幀,它是 32 位/秒?
發(fā)表于 01-22 06:29
ads1256有效位數(shù)怎么計算?
您好,對于ADS1256有效位數(shù)的計算,數(shù)據(jù)手冊給出的測試公式是怎么推到出來的呢?能夠幫我推到出來嗎?對于第一張圖中rms的計算是怎么出來的?
發(fā)表于 11-22 07:07
有關中斷代碼的疑問
有關中斷代碼的疑問當我用op_intrpt_schedule_self(time,code)時,這個中斷碼是不是自己隨便定義的啊,隨便是整型數(shù)幾都可以?以前一直這么理解的,但結果一直不對,仔細看才
發(fā)表于 06-14 18:01
邊緣計算是指什么?邊緣計算的最大優(yōu)勢是什么
邊緣計算是指在生成或收集物聯(lián)網(wǎng)(IoT)數(shù)據(jù)的網(wǎng)絡“邊緣”處或附近發(fā)生的處理。結合使用邊緣計算和邊緣分析(包括人工智能和機器學習)的公司,可以獲取有價值的實時洞察,從而獲得競爭優(yōu)勢?! ∵吘?/div>
發(fā)表于 07-12 07:18
量子計算是什么
量子計算是一種遵循量子力學規(guī)律調控量子信息單元進行計算的新型計算模式。對照于傳統(tǒng)的通用計算機,其理論模型是通用圖靈機;通用的量子計算機,其理
巨頭們開始角逐邊緣計算是出于怎樣的目的
云計算是計算服務的集中化,以最簡單的形式利用共享數(shù)據(jù)中心基礎設施和規(guī)模經(jīng)濟來降低成本。
發(fā)表于 09-20 09:15
?825次閱讀
云計算是保護數(shù)據(jù)的關鍵嗎?
云計算是如此強大,因為企業(yè)控制某些人可以訪問什么數(shù)據(jù)。企業(yè)不僅可以通過密碼保護云本身,也可以通過密碼保護云計算的不同區(qū)域。
發(fā)表于 06-20 11:27
?742次閱讀
AI邊緣計算是什么,為什么5G的發(fā)展離不開它
邊緣計算是云計算的補充和優(yōu)化。如果說云計算是“云”化的數(shù)據(jù)集中處理,那么邊緣計算可以理解為在邊緣和靠近終端(如屏幕、傳感器等智能設備)的位置進行數(shù)據(jù)處理。在許多情況下,邊緣
發(fā)表于 05-07 17:30
?777次閱讀
邊緣計算是個啥東西
在互聯(lián)網(wǎng)時代,每天都有新的概念誕生。就像今天提到的邊緣計算。邊緣計算,與云計算,是同一個體系下的相對概念。他們的標準化概念各位可以自行百度,通俗的來講,云計算是公用大腦,邊緣
發(fā)表于 05-18 14:44
?0次下載

AI邊緣計算是什么意思?邊緣ai是什么?AI邊緣計算應用
AI邊緣計算是什么意思?邊緣ai是什么?AI邊緣計算應用? 隨著人工智能技術的不斷發(fā)展,邊緣計算作為一種新型的計算模式逐漸成為熱門話題。AI邊緣計算
SOLIDWORKS仿真計算是什么意思?
SOLIDWORKS仿真計算是指利用SOLIDWORKS軟件進行工程設計和分析時所使用的計算方法和技術。SOLIDWORKS是一款流行的三維計算機輔助設計(CAD)軟件,它提供了豐富的工具和功能,使工程師能夠創(chuàng)建和模擬各種產品和

大數(shù)據(jù)與云計算是干嘛的?
大數(shù)據(jù)與云計算是支撐現(xiàn)代數(shù)字化技術的兩大核心。大數(shù)據(jù)專注于海量數(shù)據(jù)的采集、存儲、分析與價值挖掘;云計算通過虛擬化資源池提供彈性計算、存儲及服務能力。兩者結合,共同賦能企業(yè)決策、業(yè)務創(chuàng)新和效率提升。下面UU云小編將詳細剖析大數(shù)據(jù)與
評論