擅长:python、mysql、java
<p>让我们使用<code>transform</code>+<code>any</code>除去lambda:</p>
<pre><code>m = df.Vehicle_Color.eq('Red').groupby(df.Owner).transform('any')
df.loc[m, 'Vehicle_Color'] = 'Red'
</code></pre>
<p>或者</p>
<pre><code>m = (
df.set_index('Owner')
.Vehicle_Color
.eq('Red')
.groupby(level=0)
.transform('any')
)
df.loc[m, 'Vehicle_Color'] = 'Red'
</code></pre>
<p>由于grouper是在<code>df</code>的索引中指定的,所以这应该会稍微快一点。你知道吗</p>
<p/>
<pre><code>df
Owner Vehicle_Color
0 James Red
1 Peter Green
2 James Red
3 Sally Blue
4 Steven Red
5 James Red
6 James Red
7 Peter Blue
</code></pre>