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

如何从Pandas DataFrame的ranking_pos列提取排名数字并转整数?

Pandas提取ranking_pos列中的排名整数

以下几种方法都能解决你的问题,直接套用即可:

方法1:字符串分割+去前缀

先按空格分割字符串,取#数字部分,再去掉#后转整数:

df['ranking'] = df['ranking_pos'].str.split().str[0].str.lstrip('#').astype(int)
  • str.split():默认按空格分割每行内容,得到['#123', 'of', '12,216']
  • str[0]:取分割后的第一个元素#123
  • str.lstrip('#'):去掉开头的#,得到'123'
  • astype(int):转换为整数类型

方法2:正则表达式提取(推荐)

用正则直接匹配#后的数字,一步到位:

df['ranking'] = df['ranking_pos'].str.extract(r'#(\d+)').astype(int)
  • 正则r'#(\d+)':#匹配前缀,(\d+)捕获一个或多个连续数字(括号表示提取目标内容)
  • str.extract():只提取捕获组内的内容,直接得到'123'
  • astype(int):转换为整数类型

扩展:处理带千分位的排名

如果排名数字包含千分位逗号(比如#1,234 of ...),可以先去掉逗号再转换:

df['ranking'] = df['ranking_pos'].str.extract(r'#([\d,]+)').str.replace(',', '').astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:55:22