私は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.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])