1.安装模块
pip install wquantiles
2.数据准备
state = ["阿拉巴马州","阿拉斯加州","亚利桑那州","阿肯色州","加利福尼亚州","科罗拉多州","康涅狄格州","特拉华州"]
population = [4779736,710231,6392017,2915918,37253956,5029196,3574097,897934]
murder = [5.7,5.6,4.7,5.6,4.4,2.8,2.4,5.8]
df = pd.DataFrame({"州":state,"人口":population,"谋杀率":murder})
df
州 | 人口 | 谋杀率 | |
---|---|---|---|
0 | 阿拉巴马州 | 4779736 | 5.7 |
1 | 阿拉斯加州 | 710231 | 5.6 |
2 | 亚利桑那州 | 6392017 | 4.7 |
3 | 阿肯色州 | 2915918 | 5.6 |
4 | 加利福尼亚州 | 37253956 | 4.4 |
5 | 科罗拉多州 | 5029196 | 2.8 |
6 | 康涅狄格州 | 3574097 | 2.4 |
7 | 特拉华州 | 897934 | 5.8 |
3.计算加权中位数
wquantiles模块的内部方法
def median(data, weights):
"""
Weighted median of an array with respect to the last axis.
Alias for `quantile(data, weights, 0.5)`.
"""
return quantile(data, weights, 0.5)
计算平均谋杀率(加权中位数)
调用wquantiles模块
import wquantiles
wquantiles.median(df["谋杀率"],df["人口"])
结果:4.448750497554494