我正在使用Cerberus来验证dataframes模式。使用下面的示例数据和代码,if-else语句应该是“数据结构有效”,但它返回“数据结构无效”。任何见解将不胜感激。
import pandas as pd
from cerberus import Validator
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'Paris', 'London']
})
data = df.to_dict()
schema = {
'name': {'type': 'string'},
'age': {'type': 'integer', 'min': 18},
'city': {'type': 'string'}
}
validator = Validator(schema)
is_valid = validator.validate(data)
if is_valid:
print("Data structure is valid!")
else:
print("Data structure is not valid.")
print(validator.errors)
结果:
>>> Data structure is not valid.
>>> {'age': ['must be of integer type'], 'city': ['must be of string type'], 'name': ['must be of string type']}
1条答案
按热度按时间mzsu5hc01#
失败的原因是df.to_dict()返回的dictionaries值与dictionaries值相同
如果你想让你的模式验证这个数据,你需要将它更改为: