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

Python pandas:如何在行满足条件时重置DataFrame索引?

解决方法

你需要先按'aa'出现的位置划分分组,再给每个分组单独生成从0开始的索引,具体代码如下:

import pandas as pd

# 构造你的DataFrame
data = {
    'name': ['john', 'popp', 'lily', 'fete', 'bruh', 'kiku', 'kiku', 'kiku'],
    'loc': ['aa', 'bb', 'cc', 'aa', 'gg', 'uu', 'aa', 'ur']
}
df = pd.DataFrame(data)

# 1. 创建分组标识:每次遇到'aa'就开启一个新分组
df['group'] = (df['loc'] == 'aa').cumsum()

# 2. 对每个分组生成从0开始的索引
df.index = df.groupby('group').cumcount()

# 3. 删掉临时的group列(可选)
df = df.drop('group', axis=1)

print(df)

运行后会得到你期望的结果:

nameloc
0johnaa
1poppbb
2lilycc
0feteaa
1bruhgg
2kikuuu
0kikuaa
1kikuur

代码说明

  • (df['loc'] == 'aa').cumsum():每遇到一行loc值为'aa'时,累加计数加1,这样同一个"aa块"内的所有行会拥有相同的分组标识。
  • df.groupby('group').cumcount():针对每个分组,从0开始为行计数,刚好实现每次遇到'aa'就重置索引的需求。

你之前的代码只是全局重置了一次索引,没有按'aa'的位置做分组处理,所以无法达到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:01:20