0

特定の文字列内の正確な文字列の数を取得し、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
4

1 に答える 1