我的问题是处理大型CSV文件中的数据。
我正在寻找最有效的方法来确定(即,猜测)基于该列中找到的值的列的数据类型。我可能正在处理非常混乱的数据。因此,该算法应该具有一定的容错性。
下面是一个例子:
arr1 = ['0.83', '-0.26', '-', '0.23', '11.23'] # ==> recognize as float
arr2 = ['1', '11', '-1345.67', '0', '22'] # ==> regognize as int
arr3 = ['2/7/1985', 'Jul 03 1985, 00:00:00', '', '4/3/2011'] # ==> recognize as date
arr4 = ['Dog', 'Cat', '0.13', 'Mouse'] # ==> recognize as str
一句话:我正在寻找一个python包或一个算法,它可以检测
Method for guessing type of data represented currently represented as strings朝着类似的方向发展。 不过,我担心性能,因为我可能要处理许多大型电子表格(数据来源于此)
经过深思熟虑,我将亲自设计算法:
出现的两个问题:
您可以尝试使用regex进行预分析。例如:
这样你就可以做一个regex字典,并尝试每一个,直到找到一个匹配的
不要忘记行乞时的“^”和结尾的“$”,否则regex可以匹配字符串的一部分并返回一个对象。
希望这有帮助:)
您可能会对这个python库感兴趣,它正是为您对csv和XLS文件进行这种类型猜测的库:
它可以很高兴地扩展到非常大的文件,从互联网上传输数据等等
还有一个更简单的包装器库,它包含一个名为dataconverters的命令行工具:http://okfnlabs.org/dataconverters/(和一个在线服务:https://github.com/okfn/dataproxy!)
进行类型猜测的核心算法如下:https://github.com/okfn/messytables/blob/7e4f12abef257a4d70a8020e0d024df6fbb02976/messytables/types.py#L164
相关问题 更多 >
编程相关推荐