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

如何高效批量移除多行中的数字与|符号,保留国家名称

批量提取国家名称的解决方案

不用逐个替换,直接用正则表达式配合pandas的replace或str.extract就能一次性处理所有数据,以下是具体方法:

方法1:使用replace批量替换前缀

针对你给出的数字 | 国家格式,用正则匹配开头的数字、空格、|和空格,直接替换为空字符串即可:

import pandas as pd

# 模拟你的数据
data = ['74 | United Kingdom', '54 | Germany', '136 | Monaco', '62 | Egypt', None, '155 | Malaysia', '161 | Nigeria', '68 | Fiji', '176 | Poland', '228 | United States', '103 | India', '121 | Kuwait', '23 | Bahrain', '243 | South Africa']
df = pd.DataFrame(data, columns=['country'])

# 正则批量替换
df['country'] = df['country'].replace(r'^\d+\s\|\s', '', regex=True)

正则表达式说明:

  • ^:匹配字符串开头
  • \d+:匹配1个或多个数字
  • \s:匹配空格
  • \|:匹配|符号(需转义,因为它在正则里是特殊字符)
  • 整个表达式精准匹配数字 | 这个前缀,替换为空后就剩下纯国家名称。

方法2:使用str.extract提取国家部分

另一种思路是直接提取|后面的国家名称:

df['country'] = df['country'].str.extract(r'\|\s(.*)$', expand=False)

正则说明:

  • \|\s:匹配|和后面的空格
  • (.*)$:提取从该位置到字符串结尾的所有内容,也就是国家名称。

两种方法都能保留原数据中的nan值,无需手动逐个处理每个国家。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:45:29