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

如何在Python Pandas中仅用.apply修改DataFrame指定列的空字符串

解决DataFrame指定列空字符串替换问题

不用循环的apply实现方式

你之前直接用apply失败,大概率是没针对列维度处理或者函数逻辑有误。正确的写法是先选中目标列,再对每一列应用替换逻辑:

# 选中指定列后,用apply按列处理
cols = ['a', 'b', 'c', 'd', 'e']
df[cols] = df[cols].apply(lambda col: col.replace('', 'tmp'))

这里apply默认按列(axis=0)遍历,将每一列的Series对象传入lambda函数,用Series.replace把空字符串替换为'tmp',最后赋值回原DataFrame的对应列即可。

更高效的替代方案(无需apply)

其实apply并非最优选择,以下两种方法更简洁高效:

  1. 直接用replace批量替换
cols = ['a', 'b', 'c', 'd', 'e']
df[cols] = df[cols].replace('', 'tmp')
  1. 用mask精准替换匹配值
cols = ['a', 'b', 'c', 'd', 'e']
df[cols] = df[cols].mask(df[cols] == '', 'tmp')

之前apply失败的常见原因

  • 未先选中目标列,直接对整个DataFrame调用apply,导致无关列也被处理
  • 错误设置axis=1(按行处理),但你的需求是处理列内的空字符串,行维度的处理逻辑不匹配

内容的提问来源于stack exchange,提问作者murilo xavier de souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:01:30