检查pandas数据帧转换属性的函数注释
pandas-transform-checker的Python项目详细描述
熊猫变换检查器
这是什么?
这个库专注于pandas转换的数据质量检查。 转换是以pandas数据帧作为输入的函数(加上 其他参数)并输出数据帧。
此库允许用户指定函数必须遵守的协定。 在本合同中,用户可以指定:
- 添加的列
- 删除的列
- 修改后的列
- 如果函数add/drop records
- 如果函数修改索引(例如:重新采样)
一旦指定了协定,函数将引发运行时错误 如果违反了其中一个规范。
如何使用?
该包包含执行以下检查的decorator 导入方式如下:
from pandas_transform_checker.decorator_contract_checker import input_df_contract
args
df_param:作为输入df的函数的参数的名称 contract_params:dict按以下格式定义函数的contract:
contract_dict = {
"col_additions": {
"col_a": "int",
"col_b": "float"
},
"col_deletions": {
"col_c",
"col_d"
},
"col_editions": {
"col_e",
"col_f"
},
"allow_index_edition": False,
"allow_drop_record": True
}
这意味着该函数必须创建“col_a”、“col_b”,删除“col_c”、“col_d”,必须 不得修改除“col”“col”“f”之外的任何列数据,也不得编辑索引
以下是此dict中允许的密钥列表:
- col_additions:dict,其中键是列名,值是数据类型(字符串)
- 列删除:表示已删除列的str集
- col_editions:表示修改列的str集
- 允许索引版本:bool指示函数是否修改索引
- allow_add_drop_record(bool):指示函数是否可以删除某些记录(例如,当使用dropna时)
使用量
当您有一个以df为输入的函数时:
def super_func(df_input):
...
只需添加注释即可自动检查属性
@input_df_contract(df_param="df_input", contract_dict={"col_editions": {"col_e","col_f"}})
def super_func(df_input):
...