擅长:python、mysql、java
<p>可以尝试连接操作而不是循环。虽然我个人不知道如何跳出一个初始循环,但我首先在切片器中循环,并为每个切片器范围分配一个组。然后得到一个只包含起始时间组的数据帧。然后重新加入。我不确定这是否更快。它取决于在每个循环中切片所需的时间,而不是赋值。也许你可以试试看,让我知道这样或那样?你知道吗</p>
<pre><code>df['G'] = np.nan
for n, k in enumerate(slicr):
df.ix[df.ix[list(range(k.start,k.stop)),'position'],'G'] = n
map_df = df.ix[[k.start for k in slicr], ['G', 'time']]
new_df = pd.merge(df, map_df, on='G', how='left')
</code></pre>