<p>首先从<code>DatetimeIndex</code>创建列,然后由<code>y</code>列创建<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_index.html" rel="nofollow noreferrer">^{<cd2>}</a>。然后使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html" rel="nofollow noreferrer">^{<cd4>}</a>和<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.idxmax.html" rel="nofollow noreferrer">^{<cd5>}</a>什么返回索引(这里是<code>y</code>列值)按每个组<code>loadtime</code>中的最大值:</p>
<pre><code>print (df.rename_axis('dat')
.reset_index()
.set_index('y')
.groupby('dat')['loadtime']
.idxmax()
.to_frame('y'))
y
dat
2017-09-01 00:00:00 1.0
2017-09-01 01:00:00 2.0
2017-09-01 02:00:00 0.0
2017-09-01 03:00:00 1.0
</code></pre>
<p>细节:</p>
<pre><code>print (df.rename_axis('dat')
.reset_index()
.set_index('y'))
dat loadtime
y
0.0 2017-09-01 00:00:00 2017-10-02 01:59:00
1.0 2017-09-01 00:00:00 2017-10-02 09:23:00
2.0 2017-09-01 00:00:00 2017-10-02 03:35:00
0.0 2017-09-01 01:00:00 2017-10-01 17:26:00
1.0 2017-09-01 01:00:00 2017-10-01 16:44:00
2.0 2017-09-01 01:00:00 2017-10-02 12:50:00
0.0 2017-09-01 02:00:00 2017-10-02 11:30:00
1.0 2017-09-01 02:00:00 2017-10-02 11:17:00
2.0 2017-09-01 02:00:00 2017-10-01 20:23:00
0.0 2017-09-01 03:00:00 2017-10-02 15:27:00
1.0 2017-09-01 03:00:00 2017-10-02 18:08:00
2.0 2017-09-01 03:00:00 2017-10-01 16:06:00
</code></pre>
<p>时间安排:</p>
<pre><code>t = pd.date_range('01/01/2017', '12/25/2017', freq='1H')
#len(df)
#[25779 rows x 2 columns]
In [225]: %timeit (df.rename_axis('dat').reset_index().set_index('y').groupby('dat')['loadtime'].idxmax().to_frame('y'))
1 loop, best of 3: 870 ms per loop
In [226]: %timeit df.groupby(level=0).apply(lambda x : x.set_index('y').idxmax()).rename(columns={'loadtime':'y'})
1 loop, best of 3: 4.96 s per loop
</code></pre>