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

为什么对pandas DataFrame列使用apply函数后原数据没有变化?

问题根因

Pandas 的所有转换类方法默认都是不修改原对象,而是返回一个全新的Series或DataFrame对象。你调用df['NBA'].apply(transform)时,仅在终端输出了转换后的新Series结果,并没有将这个结果赋值回原DataFrame的对应列,所以查看原df时数据仍保持初始状态。

修复方案

只需要把apply的返回值赋值给原列即可生效:

df['NBA'] = df['NBA'].apply(transform)
额外优化建议

这类简单的字符串替换逻辑不需要自定义函数配合apply,直接使用pandas向量化操作不仅写法更简洁,处理大数据量时性能也会高很多:

# 更严谨的写法:先去除首尾空格再判断是否为空,避免多个空格的场景被遗漏
df['NBA'] = df['NBA'].where(df['NBA'].str.strip().str.len() > 0, None)

注:你给出的执行输出中替换结果为Missing Value,但你贴的transform函数返回的是None,如果你实际需要替换为Missing Value字符串,把上面代码里的None改成对应字符串即可


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:45:01