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

Pandas使用str.contains匹配Cycle行并提取数字的问题咨询

Pandas 匹配指定行提取数字解决方法

错误原因

你之前的写法存在逻辑错误:df['1'].str.contains('Cycle')返回的是布尔值序列(仅包含True/False),而非匹配到的原始字符串内容,后续调用.str.extract无法从布尔值中提取数字,会直接返回NaN,所以看起来Cycle行像消失了。

实现代码

核心思路是先标记含Cycle的行,仅对这部分行做数值提取,其余行保持原有内容不变:

# 1. 标记包含Cycle的行,na=False是为了避免空值报错
cycle_mask = df['1'].str.contains('Cycle', na=False)

# 2. 仅对标记行处理:先提取括号内的内容,再提取所有数字,最后用逗号拼接
df.loc[cycle_mask, '1'] = df.loc[cycle_mask, '1']\
                            .str.extract(r'\((.*?)\)', expand=False)\
                            .str.findall(r'\d+')\
                            .str.join(',')

效果验证

运行上述代码后,你的DataFrame第一列会直接变成你需要的输出格式:

1
0
A
B
C
0,43
A
B
C

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:54:01