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

如何用Pandas高效标记DataFrame中关键词分隔的分段

用Pandas高效标记DataFrame分段的方法

需求:现有含字符串的DataFrame列A,需新建列B,以关键词hi为分隔,对hi之间的内容进行递增标记,示例效果如下:

A B
hi
a 1
b 1
hi
d 2
f 2
g 2
hi

直接用Pandas的布尔累加就能高效实现,步骤如下:

  1. 先构造示例DataFrame(已有数据可跳过此步):
import pandas as pd

df = pd.DataFrame({'A': ['hi', 'a', 'b', 'hi', 'd', 'f', 'g', 'hi']})
  1. 核心处理代码:
# 标记`hi`的位置并计算累加和,生成初始标记
df['B'] = df['A'].eq('hi').cumsum()
# 清空`hi`所在行的标记值
df.loc[df['A'] == 'hi', 'B'] = ''

原理说明

  • df['A'].eq('hi')生成布尔序列,hi对应True(等价于1),其他值对应False(等价于0);
  • cumsum()对布尔序列累加,每遇到一次hi,累加值就加1,后续行继承当前累加值,正好对应分段的递增标记;
  • 最后通过loc定位hi所在行,将其B列设为空,完全匹配需求效果。

运行后得到的DataFrame如下:

A  B
0   hi   
1    a  1
2    b  1
3   hi   
4    d  2
5    f  2
6    g  2
7   hi   

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:54:24