【发布时间】:2014-02-23 13:20:07
【问题描述】:
我试图找到解决方法并在此处在线搜索,但找不到帮助我解决此问题的示例。
我正在从一个大的 csv 中读取行并将每一行更改为一个列表。问题是数据源不是很干净。有时它有空字符串或错误数据,发生这种情况时我需要填写默认值。例如:
list_ex1 = ['apple','9','','2012-03-05','455.6']
list_ex2 = ['pear','0','45','wrong_entry','565.11']
这里,list_ex1 有一个空白的第三个条目,而 list_ex2 在应该是日期的地方有错误的数据。为了清楚起见,我可以创建一个正则表达式来限制五个条目中的每一个应该是什么:
reg_ex_check = ['[A-Za-z]+','[0-9]','[0-9]','[0-9]{4}-[0-1][0-9]-[0-3][0-9]','[0-9.]+']
即:
- 第一个条目:一个字符串,没有数字
- 第二个条目:0 到 9 之间的一位数
- 第 3 项:也是一位数。
- 第 4 项:标准格式的日期(允许任何四位整数表示年份)
- 第 5 个条目:浮点数
如果条目为空或与正则表达式不匹配,则应填写/替换为以下默认值:
default_fill = ['empty','0','0','2000-01-01','0']
我不确定最好的方法是什么。我想我可以写一个复杂的循环,但我觉得做这样的事情不是很“pythonic”。
有更好的想法吗?
【问题讨论】:
标签: python regex list missing-data