擅长:python、mysql、java
<p>基于预期的数据帧,看起来您只想递增地重新计算圈数,即使它们不是连续圈数。所以5,6,9变成了1,2,3</p>
<p>为此,获取<code>Lap</code>的唯一值并对其进行排序。然后用一个<a href="https://docs.python.org/3/library/itertools.html#itertools.count" rel="nofollow noreferrer">^{<cd2>}</a>来压缩它,它只是计数。从中创建一个字典,然后将旧搭接值映射到新搭接值:</p>
<pre class="lang-py prettyprint-override"><code>import itertools
lap_map = dict(zip(sorted(df['Lap'].unique()), itertools.count(1)))
# lap_map is {5: 1, 6: 2, 9: 3}
df['Lap'] = df['Lap'].map(lap_map)
df
</code></pre>
<p>输出:</p>
<pre><code> value1 value2 Lap
id
1 a b 1
2 c d 1
3 e f 2
4 g h 2
5 i j 3
6 k l 3
7 m n 3
</code></pre>