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

pandas提取DataFrame列下划线前字符出现多余0的问题咨询

错误原因

你使用的str(df['name'])是将整个name列的Series对象整体转为字符串,该转换结果会默认携带行索引标识(即你看到的前缀0),后续拆分操作是作用于这个全局字符串,而非逐行处理每个单元格的内容,因此所有行的value列都取到了错误的全局拆分结果。

解决方法

以下是几种常用的正确实现方式:

  • 方法1(最推荐,向量化处理性能最优):使用pandas专属的.str字符串访问器逐行处理
df['value'] = df['name'].str.split('_').str[0]

.str接口会将拆分操作作用于每个单元格的字符串内容,拆分后取第一个元素即可得到下划线前的字符。

  • 方法2(适用于自定义复杂逻辑场景):使用apply逐行处理
df['value'] = df['name'].apply(lambda x: x.split('_')[0])

通过lambda函数对每行的name值单独做拆分处理,拿到第一个元素赋值。

  • 方法3(正则提取,适合格式校验场景):用正则匹配提取下划线前的内容
df['value'] = df['name'].str.extract(r'^([^_]+)', expand=False)

正则^([^_]+)会匹配字符串开头到第一个下划线之间的所有字符,expand=False参数直接返回Series对象,可直接赋值。

以上任意方法运行后,你得到的value列都会是无多余前缀的BC。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:48:03