python中pd读取csv二进制,如何从csv文件读取python中的数字?

I have a csv file and I have to compute the mean for some of the columns.

That's how I did:

file=csv.reader(open('tab.csv','r'))

n=[]

for row in file:

n.append(row[8])

So I have a list of string : n=['','','1.58'...]

How can I convert these to float?

I tried with :

n_values=np.array(n)

n_values[n=='']='0'

values=n_values.astype(np.float)

np.mean(values)

But the mean is not correct because I should skip the empty strings not counting.

Thank for your help!

解决方案

Just cast as you append:

n.append(float(row[8]))

If there are empty strings catch those before appending.

try:

n.append(float(row[8]))

except ValueError:

continue

Or you might want to try pandas, in particular pandas.read_csv:

import pandas as pd

df = pd.read_csv("in.csv")

print(df["col_name"].mean())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值