インターバルを1秒とした1日分の空のテーブルを作り時分秒のカラムに適切な値を入れるプログラムです.
生成後のデータフレーム行数は86400(= 24 x 60 x 60)となります.
普通に一行ずつ処理するとそれだけで1分とかかかっちゃうので処理時間若干早くなるように考慮.
手元のWindowsマシンで3秒くらいになりました.
sample.ipynb
import pandas as pd
df = pd.DataFrame(index=range(86400),columns=['h','m','s'])
for h in range(24):
df.loc[range(h*3600, h*3600+3600),['h']] = h
for ms in range(60):
m_list = []
for m_ in range(ms*60, ms*60+86400, 3600):
m_list.extend(list(range(m_, m_+60)))
df.loc[m_list,['m']] = ms
df.loc[range(ms, 86400, 60),['s']] = ms
print(df)
時分秒のindexを算出してから一気に代入,ってところがポイントです.