<p>IIUC公司:</p>
<pre><code>s = df.groupby('car_id')['odometer_start'].diff()
df['miles_since_last_maint'] = np.where(df['need_maintanince'], s, 0)
</code></pre>
<p>给予</p>
<pre><code> car_id odometer_start need_maintanince miles_since_last_maint
0 1 0 0 0.0
1 2 5 0 0.0
2 2 9 0 0.0
3 3 1 0 0.0
4 3 3 1 2.0
5 3 8 0 0.0
6 3 19 1 11.0
7 3 52 1 33.0
8 1 11 0 0.0
9 2 22 0 0.0
10 2 64 1 42.0
11 4 132 0 0.0
12 4 144 1 12.0
</code></pre>