TypechoJoeTheme
2025-12-04
正文:在数据分析中,分组加权平均是常见需求。例如,电商需要按品类计算商品价格的销量加权平均值,或金融领域按行业计算股票的市值加权收益率。Pandas的groupby虽强大,但直接实现加权平均需巧妙处理权重与数据的关联。此时,闭包(Closure)能优雅地解决上下文变量传递问题。一、问题场景假设有销售数据DataFrame,需按category分组计算价格的quantity加权平均值:import pandas as pd
data = {
'category': ['A', 'A', 'B', 'B', 'B'],
'price': [10, 20, 30, 40, 50],
'quantity': [100, 50, 80, 70, 60]
}
df = pd.DataFrame(data)
二、闭包的解决方案闭包能捕获外部函数的变量,避免全局变量污染。以下是核心实现:def weighted_avg_factory(weight_col):
def weighted_avg(group):
r...
-
强的一批
-
有whmcs接口吗?
-
博主太厉害了!
-
博主太厉害了!
-
博主太厉害了!
-
怎么收藏这篇文章?
-
怎么收藏这篇文章?
-
想想你的文章写的特别好
-
想想你的文章写的特别好
-
不错不错,我喜欢看