擅长:python、mysql、java
<p>您可以使用<code>.apply(...)</code></p>
<pre><code>def get_length(group):
coords = group[['lat', 'lon']].values
p1, p2 = coords[0], coords[-1]
length = vincenty(p1, p2).m
return length
</code></pre>
<hr/>
<pre><code>grouped = df.groupby(by=['id'])
length = grouped.apply(get_length).rename('length')
df.merge(length, on=['id'])
</code></pre>
<hr/>
<pre><code> id lat lon length
0 1 41.144540 -8.562926 2712.533677
1 1 41.144540 -8.562926 2712.533677
2 1 41.163172 -8.583821 2712.533677
3 2 41.163233 -8.583838 5.597993
4 2 41.163198 -8.583886 5.597993
</code></pre>