Pythonで複数のcsvから同じセル同士の平均値を出したいと考えています.
例:
データ1 データ2
1 2 3 4 5 6
7 8 9 1 5 6
データ平均
2.5 3.5 4.5
4 6.5 7.5
のように出したいです
データは縦の数はバラバラで,横は75個並んでいます。1つのcsvのデータが多くて他が少ない場合は0にして加算平均したいです。
現在出ているエラーについて悩んでいます.
エラー文の改善だけでなく,ほかにおかしい箇所があったら教えてほしいです。
どうかご教授お願いします.
Python
1import pandas as pd 2import csv 3 4average_array = [[0 for i in range(75)] for j in range(450)] 5 6#データ読み取り 7df1 = pd.read_csv('front1shugou.csv', header=None) 8df2 = pd.read_csv('front2shugou.csv', header=None) 9df3 = pd.read_csv('front3shugou.csv', header=None) 10df4 = pd.read_csv('s_front9shugou.csv', header=None) 11df5 = pd.read_csv('s_front11shugou.csv', header=None) 12df6 = pd.read_csv('s_front12shugou.csv', header=None) 13df7 = pd.read_csv('s_front18shugou.csv', header=None) 14df8 = pd.read_csv('s_front22shugou.csv', header=None) 15df9 = pd.read_csv('s_front23shugou.csv', header=None) 16df10 = pd.read_csv('s_front24shugou.csv', header=None) 17df11 = pd.read_csv('s_front26shugou.csv', header=None) 18df12 = pd.read_csv('s_front27shugou.csv', header=None) 19df13 = pd.read_csv('s_front28shugou.csv', header=None) 20df14 = pd.read_csv('s_front29shugou.csv', header=None) 21for i in range(len(df1.values)): 22 for j in range(len(df1[0].values)): 23 sum_temp = df1.values[i][j]+df2.values[i][j]+df3.values[i][j]+df4.values[i][j]+df5.values[i][j]+df6.values[i][j]+df7.values[i][j]+df8.values[i][j]+df9.values[i][j]+df10.values[i][j]+df11.values[i][j]+df12.values[i][j]+df13.values[i][j]+df14.values[i][j] 24 average_array[i][j] = sum_temp/14 25print(average_array) 26 27#データ書き出し 28with open('ave_data.csv', 'w') as file: 29 writer = csv.writer(file, lineterminator='\n') 30 writer.writerows(average_array) 31 32``````エラー 33sum_temp = df1.values[i][j]+df2.values[i][j]+df3.values[i][j]+df4.values[i][j]+df5.values[i][j]+df6.values[i][j]+df7.values[i][j]+df8.values[i][j]+df9.values[i][j]+df10.values[i][j]+df11.values[i][j]+df12.values[i][j]+df13.values[i][j]+df14.values[i][j] 34IndexError: index 75 is out of bounds for axis 0 with size 7
> データは縦の数はバラバラで,横は75個並んでいます。
データ数がバラバラなのに「for i in range(len(df1.values)):」としているので発生しているエラーではないでしょうか?
どう変更すればエラーが出ないのでしょうか?
> Pythonで複数のcsvから平均値を出したいと考えています.
「平均」とはどういう基準での平均でしょうか? 具体例があると回答しやすくなるかと思います。
異なるcsvの同じセル同士を平均したいと思っています。
追加の説明は質問に追記しましょう。この欄ですと他の回答者の目に触れにくいです。
行数(縦の数)が異なるのであれば、多い分はどのように処理するのでしょうか
回答1件
あなたの回答
tips
プレビュー