擅长:python、mysql、java
<p>基于<code>melt</code>、<code>set_index</code>和<code>ffill</code>的解决方案:</p>
<pre><code>df = df.melt(id_vars=['date'], var_name='hour')
df['timestamp'] = pd.to_datetime(df['date']) + pd.to_timedelta(df['hour'].str[4:].astype(int) - 1, unit='h')
df = df.set_index(pd.DatetimeIndex(df['timestamp']))
df = df.drop(columns=['timestamp', 'date', 'hour'])
df = df.resample('15T').ffill()
df = df.reset_index()
</code></pre>
<p>结果:</p>
<pre><code> timestamp value
0 2019-01-01 00:00:00 0.1
1 2019-01-01 00:15:00 0.1
2 2019-01-01 00:30:00 0.1
3 2019-01-01 00:45:00 0.1
4 2019-01-01 01:00:00 0.2
.. ... ...
192 2019-01-03 00:00:00 0.2
193 2019-01-03 00:15:00 0.2
194 2019-01-03 00:30:00 0.2
195 2019-01-03 00:45:00 0.2
196 2019-01-03 01:00:00 0.4
</code></pre>