我有一个csv文档,我可以阅读以推断列格式:
' 46.0213(3) ', ' 101.2 ', ' 105.8(4) ', ' -- ', ' 117.2 or 22.25 ', ' 132.18900 ', ' -- ', ' 172.7(6)'
其中:
int()
; --
表示该情况不知道任何值。在这种情况下,可能应归因NaN
; x or y
如何处理所有这些特定要求?我不需要所有内容的代码,只需要一个“行为准则”和一些建议来找出这里最好的方法。
这是我用来读取文本文件的代码:
#!/usr/local/bin python
import os, re, glob, csv
with open('data.txt', 'r') as fp:
reader = csv.reader(fp, delimiter=',', quotechar='(')
column_I_want = list(zip(*reader))[4]
print column_I_want
编辑:这是一种理想的输出:
print values, error
# [ 46.0213, 101.2, 105.8, NaN, 117.2, 132.18900, NaN, 172.7], [0.3, Nan, 0.4, NaN, NaN, NaN, 0.6]
答案 0 :(得分:1)
1)这将删除前导和尾随空格
string.strip()
2,3,4)
string.strip()
if "--" in string:
# assign NaN
pass
elif "or" in string:
first = float(string.split()[0])
elif "(" in string:
string.replace('(', ')')
tok = string.split(')')
first, second = float(tok[0]), float(tok[1])
else:
first = float(string)