如何基于PersonEntityID列的新值重新索引DataFrame?
实现方法
可以通过Pandas的notna()、cumsum()方法实现需求,具体步骤如下:
- 先构造示例DataFrame(模拟你的原始数据):
import pandas as pd df = pd.DataFrame({ 'PersonEntityID': [324141, None, 425544, None, 434456] })
- 生成目标索引:
先标记非空值为1、空值为0,对标记值累加后减1,就能得到每个非空值对应的递增索引,空值会自动继承前一个非空值的索引:
# 生成非空标记并累加,得到目标索引 df['new_index'] = df['PersonEntityID'].notna().astype(int).cumsum() - 1 # 设置新索引并保留原列 df = df.set_index('new_index')
- 最终结果:
执行后得到的DataFrame如下:
PersonEntityID new_index 0 324141.0 0 NaN 1 425544.0 1 NaN 2 434456.0
内容的提问来源于stack exchange,提问作者nzskra
相关产品推荐
相关产品推荐

