【发布时间】:2015-10-10 19:07:42
【问题描述】:
我有一个 csv 文件,我必须计算一些列的平均值。 我就是这样做的:
file=csv.reader(open('tab.csv','r'))
n=[]
for row in file:
n.append(row[8])
所以我有一个字符串列表:n=['','','1.58'...] 我怎样才能将这些转换为浮动? 我试过了:
n_values=np.array(n)
n_values[n=='']='0'
values=n_values.astype(np.float)
np.mean(values)
但平均值不正确,因为我应该跳过不计算的空字符串。 感谢您的帮助!
【问题讨论】:
-
你可以使用
n.append(float(row[8])),但是如果你有空值,你需要把它放在一个try/except块中。 -
@Alice 您实际上要问的是如何将字符串转换为浮点数。问题中的其余内容无关紧要
-
@OmerDagan:必须进行显式类型转换是一种代码味道,只需使用 pandas
pd.read.csv()。目前的问题很好(希望 CSV 文件有标题)
标签: python csv numpy file-io numbers