【问题标题】:How to calculate weighted mean and median in python?如何在python中计算加权平均值和中位数?
【发布时间】:2021-09-10 23:33:27
【问题描述】:

我在 pandas DataFrame 或 NumPy 数组中有数据,并想根据另一列或数组中的某些权重计算加权平均值(平均值)或加权中位数。我正在寻找一个简单的解决方案,而不是从头开始编写函数或将它们复制粘贴到我需要它们的任何地方。

数据看起来像这样 -

state.head()
    State    Population Murder.Rate Abbreviation
0   Alabama     4779736     5.7     AL
1   Alaska      710231      5.6     AK
2   Arizona     6392017     4.7     AZ
3   Arkansas    2915918     5.6     AR
4   California  37253956    4.4     CA

我想计算murder rateweighted mean or median,其中考虑了各州不同的populations

我该怎么做?

【问题讨论】:

    标签: python pandas dataframe statistics


    【解决方案1】:

    首先,在python中安装weightedstats库。

    pip install weightedstats
    

    然后,执行以下操作 -

    加权平均值

    ws.weighted_mean(state['Murder.Rate'], weights=state['Population'])
    4.445833981123394
    

    加权中位数

    ws.weighted_median(state['Murder.Rate'], weights=state['Population'])
    4.4
    

    它还具有特殊的加权平均值和中值方法,可用于 numpy 数组。以上方法都可以,但如果你需要的话。

    my_data = [1, 2, 3, 4, 5]
    my_weights = [10, 1, 1, 1, 9]
    
    ws.numpy_weighted_mean(my_data, weights=my_weights)
    ws.numpy_weighted_median(my_data, weights=my_weights)
    

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 2021-11-21
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      相关资源
      最近更新 更多