熊猫按加权平均数分组



我有一个DataFrame,我想在它上按日期(df中列中的"count_date"(进行分组,并对平均速度("average_speed"(应用加权平均值("count"(。

我正在尝试这个:

df_byday = df_merged.groupby("count_date").apply(lambda x: np.average(x['average_speed'], weights=x['count']))

但是它返回ZeroDivisionError,因为存在一些行;计数";以及";平均速度";等于0。

在Numpy文档中搜索时,我可以看到np.ma.average()可以帮助解决这个问题。但当我尝试应用它时,我会出现以下错误:

/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/ma/extras.py:649: RuntimeWarning: invalid value encountered in double_scalars
avg = np.multiply(a, wgt,

有人能帮我,让我知道如何处理这种情况下的ZeroDivisionError吗?

非常感谢!

您可以捕获ZeroDivisionError异常

def func(x):
try: 
return np.average(x['average_speed'], weights=x['count'])
except ZeroDivisionError:
return 0
df_byday = df_merged.groupby("count_date").apply(func)

最新更新