<ol>
<li>最简单的情况是<code>groupby()</code>日期的<code>floor("D")</code>。为了满足你的要求,在做地板之前减去7小时</li>
<li>然后使用<code>transform("cumsum")</code>,这样就可以得到原始数据帧基数相同的运行总数</li>
<li>显示了早上6点和早上7点的结果,您可以看到总数正在重置</li>
</ol>
<pre><code>import pandas as pd
import random
df = pd.DataFrame([{'DATE':d, "value":random.randint(0,10)}
for d in pd.date_range(start=datetime(2020,7,24),end=datetime(2020,7,30), freq="15min")])
df["cumsum"] = df.groupby((df["DATE"]-pd.Timestamp(1970,1,1,7)).dt.floor("D"))["value"].transform("cumsum")
df[df["DATE"].dt.hour.isin([6,7])][:15]
</code></pre>
<p><strong>输出</strong></p>
<pre><code> DATE value cumsum
2020-07-24 06:00:00 3 137
2020-07-24 06:15:00 0 137
2020-07-24 06:30:00 6 143
2020-07-24 06:45:00 7 150
2020-07-24 07:00:00 0 0
2020-07-24 07:15:00 3 3
2020-07-24 07:30:00 10 13
2020-07-24 07:45:00 5 18
2020-07-25 06:00:00 6 459
2020-07-25 06:15:00 10 469
2020-07-25 06:30:00 8 477
2020-07-25 06:45:00 8 485
2020-07-25 07:00:00 3 3
2020-07-25 07:15:00 4 7
2020-07-25 07:30:00 0 7
</code></pre>