特定の文字列内の正確な文字列の数を取得し、csv ファイルの行でそれを見つけて数を更新しようとしています。詳細に:
「5 18; 4 00; 4 00; 5 16; 5 16; 5 16; 5 15; 3 19; 3 16; 3 16; 3 15; 3 15;」というサンプル文字列があります。
文字列の最初の桁は日です (1 ~ 7 で、1 は月曜日、5 は金曜日など)。スペースの後の 2 桁目は時間 (24 時間。18 は午後 6 時) です。各エントリは、セミコロンとスペースで区切られています。
日 (1 ~ 7) と時間 (00 ~ 23) を保持するマスター ファイルがあります。次のように日と時間を生成します。
for day in range(1, 8):
for hour in range(00, 24):
# Write day + hour, nums.
writerCommits.writerow([str(day) + " " + str(hour), "0"]); # to write csv
上記の for ループは master.csv を生成します。
date, count
1 0,0
1 1,0
1 2,0
1 3,0
1 4,0
...
7 19,0
7 20,0
7 21,0
7 22,0
7 23,0
合計 169 行 = (7 x 24) + 1 ここで、1 は最初の行/ヘッダーです。
ここまでは順調ですね。文字列のカウントで master.csv の値を更新する必要があります。したがって、5 18 が見つかるたびに 1 ずつ増加します。
サンプル文字列が「1 00; 1 00; 1 00; 5 16;」の場合。私の予想される出力は次のようになります。
date, count
1 0,3
...
5 16,1
...
7 23, 0