使用 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数据

短视频学习 - 4pandas之DataFrame简单使用

Pandas 数据结构之 DataFrame使用教程

pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并合并series左右dataframe的一样合并字典数据作为dataframe的行