Pra*_*hra 6 python pandas data-science pandera
我正在尝试使用 pandera 库(我对此非常陌生)进行 pandas 数据帧验证。我想要做的是忽略根据架构无效的行。我怎样才能做到这一点?
例如:pandera 模式如下所示:
import pandera as pa
import pandas as pd
schema: pa.DataFrameSchema = pa.DataFrameSchema(columns={
'Col1': pa.Column(str),
'Col2': pa.Column(float, checks=pa.Check(lambda x: (0 <= x <= 1)), nullable=True),
})
df: pd.DataFrame = pd.DataFrame({
"Col1": ["1", "2", "3", nan],
"Col2": [0.3, 0.4, 5, 0.2],
})
Run Code Online (Sandbox Code Playgroud)
我想要做的是,当我应用验证时,df我得到一个结果:
Col1 Col2
0 1 0.3
1 2 0.4
Run Code Online (Sandbox Code Playgroud)
其他有错误的行被删除。
这是我第一次听说 Pandera,但它看起来像一个很酷的图书馆。经过一番挖掘后,您可以捕获验证错误并过滤掉失败索引:
fail_index = []
try:
schema.validate(df)
except pa.errors.SchemaError as ex:
fail_index = ex.failure_cases['index']
clean_df = df[~df.index.isin(fail_index)]
Run Code Online (Sandbox Code Playgroud)
有关文档SchemaError:https://pandera.readthedocs.io/en/stable/reference/ generated/pandera.errors.SchemaError.html#pandera.errors.SchemaError
| 归档时间: |
|
| 查看次数: |
3323 次 |
| 最近记录: |