【发布时间】:2018-03-26 11:19:39
【问题描述】:
您好,我正在处理一个包含多列的 csv 文件。一个特定的列是地址,格式如下 -
10515, 115th Place Northeast, Juanita, Kirkland, King County, Washington, 98033, 美国
我想根据 (,) 拆分每一列,并为每个列创建新的相关列,例如单位、街道、州、邮政编码等...
我能够根据 (,) 拆分它们,现在每个拆分都有一列。
问题是这个数据不一致,我拆分后得到的总列数是10。但是数据的顺序不一样。一些记录如下 -
3008, 38th Avenue Southwest, West Seattle, Seattle, King County, Washington, 98126, 美国
23098, Northeast 130th Street, Trilogy, Union Hill-Novelty Hill, Novelty, King County, Washington, 98053, 美国
Fire Station 34, 633, 32nd Avenue East, Broadmoor, Washington Park, Seattle, King County, Washington, 98112, 美国
基本上,并非每条记录都会包含全部 10 种信息,也不一定顺序相同。
清理此类数据的最佳方法应该是什么?我希望最终根据它们所代表的内容将数据放入相关列中,例如城市是否位于城市列下,邮政编码是否移动到邮政编码列等。
我正在使用 Python 2.0。
希望得到一个好的解决方案。谢谢!
【问题讨论】:
-
老实说,这类问题通常是通过支付人脑来清理数据来解决的。即使您为此数据集提出了解决方案,您将如何检测它何时中断并提交只有人类才能识别的不良数据?如果人必须在之后修复它,那么人类不妨先修复它。
-
没错,但提到的问题可以通过自动化在更大程度上解决,然后最终手动解决错误。只是试图减少这将需要的手动工作量。考虑我要求的解决方案作为过滤器,以尽可能多地正确获取数据。希望这是有道理的“)
-
这是假设您的清理工作不只是引入大量难以发现或微妙的意外错误,这些错误对于人类来说更难理解。显然,这是一种权衡。有多少数据与如何接受引入的错误,以及其他标准。但是与现在使用的各种“大”数据集相比。大多数(例如)城市街道数据的错误率很高,因为没有好的方法可以自动清理。
标签: python pandas csv data-science data-cleaning