因此,我有一段代码将groupby对象和字典映射到groupby中,这些字典将groupby中的列映射为字符串,以指示聚合类型。我想验证字典中的所有值都是pandas在聚合中接受的字符串。但是,我不想使用try / except(它没有循环,只会捕获单个问题值)。我该怎么做?
我已经尝试从pandas.core.generic导入SelectionMixin并对照SelectionMixin._cython_table中的值进行检查,但这显然不是详尽的列表。我的熊猫版本是0.20.3。
这是我要如何使用此示例
class SomeModule:
ALLOWED_AGGREGATIONS = # this is where I would save the collection of allowed values
@classmethod
def aggregate(cls, df, groupby_cols, aggregation_dict):
disallowed_aggregations = list(
set(aggregation_dict.values) - set(cls.ALLOWED_AGGREGATIONS)
)
if len(disallowed_aggregations):
val_str = ', '.join(disallowed_aggregations)
raise ValueError(
f'Unallowed aggregations found: {val_str}'
)
return df.groupby(groupby_cols).agg(aggregation_dict)