我有一个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)