使用 Pandas DataFrame 验证数据 [关闭]
Posted
技术标签:
【中文标题】使用 Pandas DataFrame 验证数据 [关闭]【英文标题】:Validating data with Pandas DataFrame [closed] 【发布时间】:2019-01-08 00:06:53 【问题描述】:我已将 csv 读入 DataFrame。 CSV 包含以下记录
name,address,stars,contact,phone,uri
我想根据以下规则应用验证器
-
名称应为 UTF-8 字符串
URI 应该是有效的 URL
星星应该是 0 到 5 之间的数字
经过验证的数据将进入一个 json 文件。
【问题讨论】:
您尝试过什么来完成验证? 还没有@harvpan,有什么建议吗? 【参考方案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
,上述将返回错误。
【讨论】:
以上是关于使用 Pandas DataFrame 验证数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Pandas:如何在不使用 scikit 的情况下进行交叉验证?
pandas使用字典列表创建dataframe(list of dictionaries)pandas使用字典数据创建dataframe(dictionary)
#pandas使用merge函数将两个pandas dataframe通过笛卡尔积(cartesian product)方式连接起来生成新的dataframe数据
pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并合并series左右dataframe的一样合并字典数据作为dataframe的行