擅长:python、mysql、java
<p>可以使用以下方法获取列最大值的索引:</p>
<pre><code>>>> idx = df['Duration3'].idxmax()
>>> idx
7
</code></pre>
<p>相关列仅使用:</p>
^{pr2}$
<p>所以,只需将所有这些都打包成一个很好的函数:</p>
<pre><code>def get_max(df, i):
idx = df[f'Duration{i}'].idxmax()
df_cols = df[['Sequence', f'Duration{i}', f'Value{i}']]
return df_cols.loc[idx]
</code></pre>
<p>并在<code>1..3</code>上循环:</p>
<pre><code>>>> max_rows = [get_max(i) for i in range(1, 4)]
>>> print('\n\n'.join(map(str, max_rows)))
Sequence 1003
Duration1 685
Value1 57
Name: 2, dtype: int64
Sequence 1010
Duration2 722
Value2 63
Name: 9, dtype: int64
Sequence 1008
Duration3 981
Value3 82
Name: 7, dtype: int64
</code></pre>
<p>如果要将这3行减少到一个最大行,可以执行以下操作:</p>
<pre><code>>>> pairs = enumerate(max_rows, 1)
>>> by_duration = lambda x: x[1][f'Duration{x[0]}']
>>> i, max_row = max(pairs, key=by_duration)
>>> max_row
Sequence 1008
Duration3 981
Value3 82
Name: 7, dtype: int64
</code></pre>