如何从 csv 文件中读取 python 中的数字?
How to read numbers in python from csv file?
我有一个 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:
n.append(float(row[8]))
except ValueError:
continue
或者您可能想尝试 pandas,尤其是 pandas.read_csv:
import pandas as pd
df = pd.read_csv("in.csv")
print(df["col_name"].mean())
只需添加引号:
with open('tab.csv', newline='') as file:
reader = csv.reader(file, quoting=csv.QUOTE_NONNUMERIC)
n=[]
for row in reader:
n.append(row[8])
我有一个 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:
n.append(float(row[8]))
except ValueError:
continue
或者您可能想尝试 pandas,尤其是 pandas.read_csv:
import pandas as pd
df = pd.read_csv("in.csv")
print(df["col_name"].mean())
只需添加引号:
with open('tab.csv', newline='') as file:
reader = csv.reader(file, quoting=csv.QUOTE_NONNUMERIC)
n=[]
for row in reader:
n.append(row[8])