使用 Pandera 模式验证 pandas.Period

问题描述 投票:0回答:1

我有一个包含“Period”列的数据框,其数据类型应为 pandas.Period。

我想使用 Pandera Schema(DataFrameModel 或 DataFrameSchema)来验证这一点。

到目前为止我的尝试返回错误。

如果我尝试下面的代码,则会收到错误

Data type '<class 'pandas._libs.tslibs.period.Period'>' not understood by Engine.

代码:


import pandas as pd
import pandera as pa
from pandera.typing import Series


class Schema(pa.DataFrameModel):
   period: Series[pd.Period]


df = pd.DataFrame({"period" : pd.period_range("31/01/2024", "31/12/2024", freq='M')})

Schema.validate(df)

非常感谢任何建议!

python pandas period pandera
1个回答
0
投票

你能检查一下这个解决方案吗

import pandas as pd
import pandera as pa
from pandera import Column, Check
def is_period(series): return series.apply(lambda x: isinstance(x, pd.Period)).all()
schema = pa.DataFrameSchema({ "period": Column(object, checks=Check(is_period)), })
df = pd.DataFrame({"period": pd.period_range("31/01/2024", "31/12/2024", freq='M')})
schema.validate(df)
© www.soinside.com 2019 - 2024. All rights reserved.