将所有可接受的字符串参数获取到DataFrameGroupby.aggregate

时间:2019-06-19 20:26:50

标签: python-3.x pandas

因此,我有一段代码将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)

0 个答案:

没有答案