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

如何将多列重复的DataFrame正则清洗代码简化为一行?

解决方案

直接使用Pandas的applymap方法结合列范围选择,一行代码完成批量处理:

import re
df.loc[:, 'Two':'Ten'] = df.loc[:, 'Two':'Ten'].applymap(lambda x: re.sub(r'\W+', ' ', str(x)))

关键说明

  • df.loc[:, 'Two':'Ten']:精准选中从Two到Ten的所有列(Pandas支持按列名连续切片,只要列名在DataFrame中是连续排列的)
  • applymap():针对DataFrame的每个元素应用处理函数,相比循环遍历列再用map更简洁高效
  • str(x):确保将元素转为字符串类型,避免非字符串数据(如数字)传入re.sub时报错
  • 直接赋值回原DataFrame的对应列,完成批量修改

扩展优化(适配未来列增加)

如果后续新增列的命名符合类似规则(比如都是首字母大写的英文单词),可以用正则筛选列,不用固定列范围:

df.loc[:, df.columns.str.match(r'^[A-Z][a-z]+$')] = df.loc[:, df.columns.str.match(r'^[A-Z][a-z]+$')].applymap(lambda x: re.sub(r'\W+', ' ', str(x)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:25:21