You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas dataframe列的Sentence_ID重置为从1开始的连续序列号

重置Sentence_ID连续递增的实现方案

两种可直接落地的实现方法如下:

方案1:使用pd.factorize()(推荐,性能更高,代码更简洁)

这个方法可以直接将重复的原始ID映射为连续的整数序列,一行代码即可完成:

import pandas as pd
# 直接替换原Sentence_ID列
df['Sentence_ID'] = pd.factorize(df['Sentence_ID'])[0] + 1

说明:pd.factorize()会按照原始ID出现的顺序,给相同的ID分配同一个编码,默认编码从0开始,加1后刚好符合从1开始连续递增的要求。

方案2:使用groupby()+ngroup()

如果习惯用分组逻辑实现,可以用这个方法,注意要加sort=False保留原始句子的顺序:

df['Sentence_ID'] = df.groupby('Sentence_ID', sort=False).ngroup() + 1

说明:ngroup()会给每个分组分配一个唯一的组编号,sort=False保证编号顺序和原始句子出现的顺序一致,不会按照原始ID的数值大小重排。

为什么不能直接用reset_index?

reset_index()是给DataFrame的每一行生成独立的行索引,会导致同一个句子的多行数据拿到不同的Sentence_ID,完全不符合需求,因此不适用。

内容的提问来源于stack exchange,提问作者Lter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:09:04