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
お礼
丁寧な回答ありがとうございます。 よかった!! できました!! 自分は3Dデザイナーなんですが、自分用にツールをカスタマイズするのをあせって、教科書を必要なとこしか読まないとゆう状態でコードを記述していました。 やはり、基本は大事なんですね! ちなみに、読んでいる本は”pythonで始めるプログラミング作法”です。