擅长:python、mysql、java
<p>我将按<code>id</code>分组,只选择状态为Null的id,并用最后一个状态替换这些组中的所有状态值。代码可以是:</p>
<pre><code>for _, sub in df.groupby('id'):
if len(sub.loc[sub['status'].str.match('Null')]) > 0: # at least one Null in group
dat = sub['date'].max() # max date in group
status = sub.loc[sub['date']==dat, 'status'].iat[0] # last status
if status != 'Null': # caution...
df.loc[sub.index, 'status'] = status
</code></pre>
<p>如果<code>date</code>列的类型为string或date,则该方法的效果相同</p>