擅长:python、mysql、java
<p>下面是一个使用<code>pandas.date_range</code>和<code>explode</code>的简单解决方案:</p>
<pre><code>df['Start Date'] = df.apply(lambda d: pd.date_range(d['Start Date'],
d['End Date'],
freq='h')[:-1],
axis=1)
df = df.explode('Start Date')
df['End Date'] = df['Start Date'] + pd.Timedelta('1h')
</code></pre>
<p>输出:</p>
<pre><code> email room Start Date End Date
0 abc@corp.com L11M2 2021-02-01 08:00:00 2021-02-01 09:00:00
0 abc@corp.com L11M2 2021-02-01 09:00:00 2021-02-01 10:00:00
0 abc@corp.com L11M2 2021-02-01 10:00:00 2021-02-01 11:00:00
1 xyz@corp.com L12M4 2021-02-01 08:00:00 2021-02-01 09:00:00
1 xyz@corp.com L12M4 2021-02-01 09:00:00 2021-02-01 10:00:00
</code></pre>