Python 熊猫:在DataFrameGroupBy上应用时处理错误

Python 熊猫:在DataFrameGroupBy上应用时处理错误,python,pandas,Python,Pandas,如何处理聚合由df.groupby函数生成的数据帧组时发生的错误 grouped_df = df.groupby(by=[FIELD_GID]).apply(_aggr) 其中,\u aggr是一个函数,由pandas为groupby产生的每个DataFrameGroupBy调用。更具体地说,\u aggr根据每个DataFrameGroupBy对象中的某些列聚合这些行,但在某些情况下,这些列不存在或具有NaN值,因此聚合只会导致返回一个空数据帧 为了简单起见,假设当前总是产生一个错误,如下所

如何处理聚合由
df.groupby
函数生成的数据帧组时发生的错误

grouped_df = df.groupby(by=[FIELD_GID]).apply(_aggr)
其中,
\u aggr
是一个函数,由pandas为
groupby
产生的每个
DataFrameGroupBy
调用。更具体地说,
\u aggr
根据每个
DataFrameGroupBy
对象中的某些列聚合这些行,但在某些情况下,这些列不存在或具有NaN值,因此聚合只会导致返回一个空数据帧

为了简单起见,假设当前总是产生一个错误,如下所示。在无法进行聚合的情况下,最好在
\u aggr
中创建并返回空数据帧,还是返回
None
或引发异常

def _aggr(df: DataFrame):
    raise KeyError

这完全取决于上下文或返回内容的分析需求。对于聚合函数中的所有例外情况,我怀疑是否存在最佳实践规则。但这可能是一个设计问题。为什么要对不存在的列进行聚合?既然pandas/numpy方法可以处理
NaN
,为什么你的聚合函数不能呢?很抱歉误解,聚合函数可以处理NaN,但我想我的问题是,在这种情况下聚合函数应该返回什么?只是一个空数据帧,还是没有?我在文档中找不到任何关于聚合函数可以返回什么的信息。