私は以前にこの質問をし、私の答えを受け取りました。ここで、合計数を含む 1 行を出力するために、列を合計する必要があります。
*私はPythonが初めてで、3番目の「_」の後の文字に基づいて特定の行を選択する必要があるcsvファイルがあります。
これは csv ファイルのサンプルです。
header row
date,ttp_ws_sm_001_01, , , , , , , , , , , ,117
date,ttp_ws_sm_001_blank, , , , , , , , , , , ,31
date,ttp_ws_sm_045_01, , , , , , , , , , , ,145
date,ttp_ws_sm_057_blank, , , , , , , , , , , ,98
date,ttpv1_001_, , , , , , , , , , , ,67
date,ttpv1_001_01, , , , , , , , , , , ,67*
これは、私が構築している最初の項目を解決したコードです:
with open(...) as f:
rows = csv.reader(f)
for row in rows:
t = row[1].split('_')
if len(t) >= 4 and t[3] == '001':
print (row[1], row[13])
結果:
('ttp_ws_sm_001_01', '117')
('ttp_ws_sm_001_blank', '31')
私がする必要があるのは、117 と 31 を追加して、合計数だけで 1 行を印刷できるようにすることです。これは私がこれまでに試したことであり、巨大なリストを取得しています。
import csv
import sys
total = 0
source = '\\\\file path'
with open(source + '\filename') as f:
rows = csv.reader(f)
for row in rows:
t = row[1].split('_')
if len(t) >= 4 and t[3] == '001':
for number in range(13):
total += int(row[13])
print ('Club 001' + '\t' + str(total))