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

Python数据分析:如何移除DataFrame列中所有文本仅保留数字?

从长度不固定的字符串列中提取数字的通用方法

针对你的reviews_count列数字长度不固定的情况,有两种通用方法可以提取所有数字:

方法1:提取连续数字序列(推荐,适合单段数字场景)

用str.extract配合正则表达式提取字符串中的第一段连续数字,适合类似"123条评价"、"已有12345人打分"这类只有一段数字的场景:

# 提取数字并转为整数类型
df['reviews_count_num'] = df['reviews_count'].str.extract(r'(\d+)', expand=False).astype(int)

r'(\d+)'表示匹配一个或多个连续数字,expand=False保证返回Series而不是DataFrame,最后用astype(int)把提取到的字符串数字转为整数,方便后续分析。

方法2:移除所有非数字字符(适合多段数字拼接场景)

如果你的字符串里有多段数字(比如"123条+456追加评价"),可以用str.replace把所有非数字字符删掉,将所有数字拼接成完整数字:

df['reviews_count_num'] = df['reviews_count'].str.replace(r'\D', '', regex=True).astype(int)

r'\D'表示匹配所有非数字字符,regex=True启用正则匹配,这样不管数字在什么位置、长度多少,都能保留下来。

处理混合类型列(既有字符串又有整数)

如果reviews_count列同时存在字符串和整数类型,先统一转为字符串再处理:

df['reviews_count_num'] = df['reviews_count'].astype(str).str.extract(r'(\d+)', expand=False).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:10:19