【发布时间】:2018-03-17 19:43:55
【问题描述】:
希望使用 Python 和 Pandas 验证 csv 文件中的数据。提供干净的数据时一切正常。但是,当数据出现问题时,很难找到问题。提出任何类型的错误都会很棒。这是一些伪代码:
dtypes = {'Date': 'str', 'yesno': 'str', 'int_val': 'int', 'decimal_value': 'str'}
df = pd.read_csv(filename, dtype=dtypes)
# Ensure exceptions are thrown for invalid data.
# valid date format in date. ValueError raised for invalid data.
pd.to_datetime(df['Date'])
# 'yes' or 'no' for the yesno field. (has to be in a list of values)
# valid integer for int_val.
# a valid integer or decimal number for decimal_value
我什至不确定 pd.to_datetime 是验证日期的最佳方式。这样做的好方法是什么?
【问题讨论】:
-
看看这个answer他使用了Python的数据验证库
-
发现无效数据后你想做什么?
-
提出任何错误都可以。如果任何地方的日期格式无效,则 pd.to_datetime(df['Date']) 语句会引发 ValueError。
-
那么,你就有答案了。
-
不是真的:其他项目怎么样:必须在值、整数或十进制值列表中的项目?可能有一种调用 read_csv 的方法可以完成所有工作。在读取后进行验证可能效率很低。