我有下表。我想根据以下公式计算按每个日期分组的加权平均值。我可以使用一些标准的常规代码来执行此操作,但是假设此数据在pandas数据框中,是否有比通过迭代更简单的方法来实现此目的?
Date ID wt value w_avg
01/01/2012 100 0.50 60 0.791666667
01/01/2012 101 0.75 80
01/01/2012 102 1.00 100
01/02/2012 201 0.50 100 0.722222222
01/02/2012 202 1.00 80
2012年1月1日w_avg = 0.5 (60 / sum(60,80,100))+ .75 (80 / sum(60,80,100))+ 1.0
*(100 / sum(60,80,100))2012年1月2日w_avg = 0.5 (100 /总和(100,80))+ 1.0 (80 /总和(100,80))
我想我会用两个groupby来做到这一点。
首先计算“加权平均值”:
In [11]: g = df.groupby('Date')
In [12]: df.value / g.value.transform("sum") * df.wt
Out[12]:
0 0.125000
1 0.250000
2 0.416667
3 0.277778
4 0.444444
dtype: float64
如果将其设置为列,则可以对其进行分组:
In [13]: df['wa'] = df.value / g.value.transform("sum") * df.wt
现在,此列的总和是所需的:
In [14]: g.wa.sum()
Out[14]:
Date
01/01/2012 0.791667
01/02/2012 0.722222
Name: wa, dtype: float64
或潜在地:
In [15]: g.wa.transform("sum")
Out[15]:
0 0.791667
1 0.791667
2 0.791667
3 0.722222
4 0.722222
Name: wa, dtype: float64
我是新来的。任何帮助都将不胜感激 这是我的原始数据: 我想得到的是: 1创建一个新的列调用平均值,以计算每个提要的平均市值。 2求加权平均数。 这是我当前的代码,我得到NaN: 对于加权平均代码: 我得到了一个错误: AttributeError:“Series”对象没有属性“value”
问题内容: 我有一个数据框 我需要的是Adjusted_lots,price和ajusted_lots的加权平均价格之和,并按所有其他列进行分组,即。按(合同,月,年和购买)分组 R的类似解决方案是使用dplyr通过以下代码实现的,但是在熊猫中却无法做到这一点。 groupby或任何其他解决方案是否可能相同? 问题答案: 编辑: 更新聚合,以便它与熊猫的最新版本一起使用 要将多个函数传递给grou
问题内容: 我正在尝试学习熊猫,但请对以下内容感到困惑。我想用行平均值替换NaN是一个数据框。因此,类似的东西应该可以工作,但是由于某种原因,它对我来说是失败的。我是否想念任何东西,我做错了什么?是因为其未执行; 但是这样的事情看起来很好 问题答案: 如评论所述,fillna的axis参数为NotImplemented。 注意:这在这里很重要,因为您不想用第n行平均值填写第n列。 现在,您需要遍历
本文向大家介绍PHP计算加权平均数的方法,包括了PHP计算加权平均数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP计算加权平均数的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。
问题内容: 我有一个OHLC价格数据集,该数据集已从CSV解析为Pandas数据框,并重新采样为15分钟的柱形: 我想添加各种计算的列,从简单的列开始,例如期间范围(HL),然后是布尔值以指示我将定义的价格模式的出现-例如锤形蜡烛模式,为其定义示例: 基本问题:如何将函数映射到列,特别是在我想引用多个其他列或整行或其他内容的地方? 这篇文章处理从单个源列添加两个计算列,这是很接近的,但还不完全是。
问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用: