前提・実現したいこと
csvファイルで、特定の行ごとに列ごとで平均を出したいです。
例えば、
num,a,b,c
1,3,3,4
1,3,3,8
2,7,1,2
3,2,6,8
3,2,4,4
3,6,7,8
7,6,3,2
7,6,7,8
といったcsvファイルがある時
num,a,b,c
1,3,3,6
2,7,1,2
3,2,5,6
7,6,5,5
といった風に書きたいです。
該当のソースコード
read_fp=csv.reader(open("test.csv", "r"))
num = []
for line in read_fp:
num.append(line[0])
num = list(dict.fromkeys(num))
print(num)
for n in num:
a_list = []
b_list = []
c_list = []
for n in read_fp:
print(n)
a_list = np.append(line[1])
b_list = np.append(line[2])
c_list = np.append(line[3])
print(np.average(a_list, np.float32))
print(np.average(b_list, np.float32))
print(np.average(c_list, np.float32))
試したこと
numの番号が飛び飛びになっているため、numのみの配列を作りそれをfor文で回したら、それぞれの列を計算できるのではないかと思い試してみました。
このやり方が正しいのかも、プログラミング初心者のため、わかりません。ご教授お願いいたします。
補足情報(FW/ツールのバージョンなど)
python3.9.7で実装しています。
回答1件
あなたの回答
tips
プレビュー