【问题标题】:Validating data with Pandas DataFrame [closed]使用 Pandas DataFrame 验证数据 [关闭]
【发布时间】:2019-01-08 00:06:53
【问题描述】:
我已将 csv 读入 DataFrame。 CSV 包含以下记录
name,address,stars,contact,phone,uri
我想根据以下规则应用验证器
- 名称应为 UTF-8 字符串
- URI 应该是有效的 URL
- 星星应该是 0 到 5 之间的数字
经过验证的数据将进入一个 json 文件。
【问题讨论】:
标签:
python
pandas
csv
validation
【解决方案1】:
在浏览了 Pandas 文档后,找到了验证数据的方法。
假设您有一个自定义验证功能。
def validate_rating(rating):
""""
Description:
validate if hotel rating is a digit between 0 to 5
Args:
rating (str): rating to be validated
Returns:
True if rating is valid
False if rating is not a valid
"""
try:
rating = int(rating)
if rating < 0 or rating > 5:
return False
return True
except ValueError:
return False
将 CSV 读入数据框后
df = pd.read_csv(input_file)
df['stars'].apply(validate_rating)
【解决方案2】:
df = df.astype(dtype={"column_name1":"dtype1", "column_name2":"dtype2", …})
如果任何列无法转换为您想要的dtype,上述将返回错误。