Python について質問です
私はPythonの初心者です。
今Python でCSVのファイルを読んで数値だけ(数値以外に文字列や空白などがあります)を計算処理出来なくて困っています。教えて頂けませんか?
質問は、BB.csvというファイルの数値だけの合計と平均を計算したいです。
私のコードは以下です。
# coding: utf-8
import csv
import re
import string
DATAFILE = 'BB.csv'
class UnicodeDictReader(csv.DictReader):
def __init__(self, f, fieldnames=None):
csv.DictReader.__init__(
self, f, fieldnames)
def main():
total = 0
all_sum = 0
line_num = 0
with open(DATAFILE) as csvfile:
reader = UnicodeDictReader(csvfile)
for record in reader:
# 値を数値で取得
A = int(record['38186'])
B = int(record['38181'])
C = int(record['38143'])
item_total = A + B + C
total = item_total
all_sum += item_total
line_num += 1
average = all_sum / reader.line_num
print(" %d + %d + %d = %d " % ( A, B, C, total))
print(u"合計 %d " % all_sum)
print(u"平均 %d " % average)
if __name__ == '__main__':
main()
BB.csvは以下です、
38186,38181,38143
1,1,4
1,1,4
,,
,,
2020,2020,2020
1412,1412,1412
625,625,625
75,75,75
75,75,75
75,75,75
75,75,75
4,4,4
4,4,4
4,4,4
7828,7828,7828
X,,
0,0,0
0,0,0
○,,
0,0,0
0,0,0
0,0,0
,,AAA
0,0,0
0,0,0
0,0,0
,BBB,
0,0,0
0,0,0
0,0,0
,,
0,0,0
,,
0,0,0
0,0,0
,,
0,0,0
0,0,0
750,750,750
400,400,400
400,400,400
,,
0,0,0
0,0,0
0,0,0
,,
0,0,0
0,0,0
0,0,0
0,0,0
0,0,0
0,0,0
0,0,0
6,6,6
6,6,6
18,18,18
18,18,18
18,18,18
18,18,18
18,18,18
16,16,16
16,16,16
6,6,6
6,6,6
18,18,18
18,18,18
18,18,18
18,18,18
18,18,18
11,11,11
11,11,11
11,11,11
3,3,3
3,3,3
3,3,3
3,3,3
4,4,4
4,4,4
3,3,3
3,3,3
16,16,16
16,16,16
16,16,16
14,8,11
8,14,11
8,14,11
8,14,11
8,14,11
8,14,11
8,14,11
8,14,11
8,14,11
15,15,15