python-3.x - 将所有可接受的字符串参数获取到 DataFrameGroupby.aggregate
问题描述
所以,我有一段代码,它接受一个 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)
解决方案
推荐阅读
- watchos - Apple 使用 watch os 模拟器登录
- javascript - 谁能修复我的 js textarea 限制特殊字符空间问题
- inno-setup - Inno 设置脚本:如何控制语言部分?
- php - PHP 如果通过 $_POST 检索到的值均无效,我如何默认为特定值?
- node.js - 无法使用 mongoose 在 mongo 中插入文档
- android - arcore 视频不显示
- firebase - vue-router.esm.js?8c4f:2181 TypeError:无法读取未定义的属性“loggedIn”
- javascript - 无法从 Firebase Firestore 中检索数据
- ios - SWIFT - 嵌套枚举
- algorithm - 为什么我们在谈论时间复杂度时使用渐近符号(因此忽略系数)?