回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p><strong>上下文:</strong></p>
<p>我的数据帧列是<code>A</code>中的ID(带有重复项)、时间值<code>B</code>和字符串值<code>C</code></p>
<p>我需要更新所有的<code>C</code>值,其中<code>C</code>对应于每个ID <code>A</code>的最近时间<code>B</code></p>
<p>显示ID(或ID组)的最新时间,但不包括C值:</p>
<pre><code>df.groupby(['A'], as_index=False)['B'].max()
</code></pre>
<p>我在跌跌撞撞到<code>.transform()</code>后的尝试失败:</p>
<pre><code>df['C'] = df.groupby('A')['B'].transform(['C'].max())
AttributeError: 'list' object has no attribute 'max'
</code></pre>
<p><strong>数据</strong></p>
<pre><code>'a':['zx5','zx5','ab1','ab1','mn3','mn3'],
'b':['1/1/2021','1/2/2021','1/3/2021','1/4/2021','1/5/2021','1/4/2021'],
'c':['aaa','bbb','ccc','ddd','eee','fff']
</code></pre>
<p><strong>所需结果:</strong></p>
<pre><code>'a':['zx5','zx5','ab1','ab1','mn3','mn3'],
'b':['1/1/2021','1/2/2021','1/3/2021','1/4/2021','1/5/2021','1/4/2021'],
'c':['bbb','bbb','ddd','ddd','eee','eee']
</code></pre>
<p>如果适用,我正在寻找一个有效的解决方案,因为它由包含100000多行数据的csv组成</p>
<p><strong>编辑:</strong>
由于注释,我更新了IDS(A),使其不那么简单,将它们视为随机的字母数字值,排序不提供好处</p>