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

Python使用split()函数从DataFrame列提取值生成新列问题

问题解答

结论

不需要使用apply函数即可实现该需求,推荐使用pandas内置的矢量化字符串操作,性能远优于apply逐行遍历方案。

实现代码

核心代码仅需一行:

# 按空格分割后取最后一个元素,生成COL-B列
df['COL-B'] = df['COL-A'].str.split().str[-1]

如果需要COL-B为数值类型,可以额外做类型转换:

df['COL-B'] = df['COL-A'].str.split().str[-1].astype(int)

方法说明

  • df['COL-A'].str.split():对COL-A列的所有字符串按空格进行批量分割,返回每个分割结果组成的列表型Series
  • .str[-1]:批量取出每个列表的最后一个元素,得到目标值

为什么不推荐用apply?

apply实现的写法如下:

df['COL-B'] = df['COL-A'].apply(lambda x: x.split()[-1])

该写法本质是逐行调用Python自定义函数,当数据量超过1万行时,执行效率会比上述矢量化方案低几倍到几十倍,无特殊需求优先选择内置矢量化方法即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:27:04