【问题标题】:Validating data with Pandas DataFrame [closed]使用 Pandas DataFrame 验证数据 [关闭]
【发布时间】:2019-01-08 00:06:53
【问题描述】:

我已将 csv 读入 DataFrame。 CSV 包含以下记录

name,address,stars,contact,phone,uri

我想根据以下规则应用验证器

  1. 名称应为 UTF-8 字符串
  2. URI 应该是有效的 URL
  3. 星星应该是 0 到 5 之间的数字

经过验证的数据将进入一个 json 文件。

【问题讨论】:

  • 您尝试过什么来完成验证?
  • 还没有@harvpan,有什么建议吗?

标签: 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,上述将返回错误。

    【讨论】:

      猜你喜欢
      • 2020-12-21
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多