<p>使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.transform.html" rel="nofollow noreferrer">^{<cd1>}</a>与<code>max</code>和<code>min</code>函数,使<code>Series</code>具有与原始<code>DataFrame</code>相同的大小,以便可以正确减去:</p>
<pre><code>df['diff']= (df.groupby('T_Id')['EndReading'].transform('max')-
df.groupby('T_Id')['StartReading'].transform('min'))
print (df)
D_Id T_Id StartReading EndReading diff
0 1 4716a 4323.17 4324.80 7.56
1 1 4716a 4324.96 4325.34 7.56
2 1 4716a 4326.47 4327.22 7.56
3 1 4716a 4327.40 4328.43 7.56
4 1 4716a 4328.85 4330.73 7.56
5 1 4716b 4346.65 4347.62 26.12
6 1 4716b 4347.67 4349.88 26.12
7 1 4716b 4351.62 4351.83 26.12
8 1 4716b 4352.88 4354.32 26.12
9 1 4716b 4354.93 4355.14 26.12
10 1 4716b 4355.20 4355.82 26.12
11 1 4716b 4356.91 4357.37 26.12
12 1 4716b 4357.74 4358.26 26.12
13 1 4716b 4359.89 4360.46 26.12
14 1 4716b 4360.61 4361.43 26.12
15 1 4716b 4361.47 4362.11 26.12
16 1 4716b 4362.88 4368.49 26.12
17 1 4716b 4368.94 4369.78 26.12
18 1 4716b 4370.91 4371.25 26.12
19 1 4716b 4372.67 4372.77 26.12
</code></pre>