<p>IIUC,您可以将<a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/groupby.html#transformation" rel="nofollow noreferrer">^{<cd1>}</a>与<code>max</code>一起使用:</p>
<pre><code>df['maxCost'] = df.groupby(['name', 'pid'])['cost'].transform('max')
</code></pre>
<p>[输出]</p>
<pre><code> name pid cost Date maxCost
0 a 1 100 1991-01-31 400
1 b 2 200 1991-01-31 200
2 c 3 300 1991-01-31 600
3 a 1 400 2001-01-31 400
4 b 4 500 2001-01-31 500
5 c 3 600 2001-01-31 600
</code></pre>
<hr/>
<h3>编辑</h3>
<p>如果您希望获取最新日期的索引并查找相关成本,则可以使用:</p>
<pre><code>df['Date'] = pd.to_datetime(df['Date'])
df['maxCost'] = (df.loc[df.groupby(['name', 'pid'])['Date']
.transform(lambda x: x.idxmax()), 'cost'].values)
</code></pre>
<p>[输出]</p>
<pre><code> name pid cost Date maxCost
0 a 1 800 1991-01-31 400
1 b 2 200 1991-01-31 200
2 c 3 300 1991-01-31 600
3 a 1 400 2001-01-31 400
4 b 4 500 2001-01-31 500
5 c 3 600 2001-01-31 600
</code></pre>