如何验证数据帧中依赖于该特定行中其他值的值



假设我有一个.csv,它遵循以下格式:

姓名、薪资、部门、强制性

Rob,5500,航空,是

Bob,1000,设施,无

Tom,6000,IT,是

将其导出到pandas/modin后,我想执行行区分检查,其中:

  1. 在航空业工作的Rob的收入不能低于5000

  2. 在工厂工作的Bob的收入不能低于1000

  3. 无论谁在设施中工作,都必须报告自己的工资,而在航空或IT部门工作的人可以选择不报告工资。

  4. 如果违反了任何检查,我们将其存储在数据帧中,并将此案例转交给人力资源部门进行进一步调查。

如何使用Pandera验证此.csv?

根据您使用的API,您可以检查基于对象的API的宽检查或基于类的API的数据帧检查。

注意:下面的代码片段没有经过测试,但应该朝着正确的方向

基于类别的API:

import pandera as pa
from pandera.typing as Series
class Schema(pa.SchemaModel):
Name: Series[str]
Salary: Series[int]
Department: Series[str]
Mandatory: Series[str]

@pa.dataframe_check
def rob_aviation_check(cls, df) -> Series[bool]:
return df.loc[df["Name"] == "Rob" & df["Department"] == "Aviation", "Salary"] >= 5000

基于对象的API:

schema = DataFrameSchema(
columns={
"Name": pa.Column(str),
"Salary": Pa.Column(int),
...
}
checks=[
pa.Check(lambda df: df.loc[df["Name"] == "Rob" & df["Department"] == "Aviation", "Salary"] >= 5000)
]
)

相关内容

  • 没有找到相关文章

最新更新