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

如何拆分DataFrame列值并提取前两个字符串至新列?

提取DataFrame列前两个字符串生成新列(处理Null值)

PySpark 实现

结合split、slice和concat_ws函数,配合when逻辑处理Null值:

from pyspark.sql import functions as F

# 假设原DataFrame为df,目标列名为"column"
df = df.withColumn(
    "New column",
    F.when(
        F.col("column").isNotNull(),
        F.concat_ws(" ", F.slice(F.split(F.col("column"), " "), 1, 2))
    ).otherwise(F.lit(None))
)
  • split(F.col("column"), " "):按空格将字符串拆分为数组
  • slice(..., 1, 2):从数组中提取前2个元素(PySpark数组索引从1开始)
  • concat_ws(" ", ...):用空格拼接提取出的两个元素
  • when...otherwise:保证原列为Null时,新列同步为Null

Pandas 实现

通过字符串方法链即可简洁处理,原列的Null值会自动保留到新列:

import pandas as pd

# 假设原DataFrame为df,目标列名为"column"
df["New column"] = df["column"].str.split(n=2).str[:2].str.join(" ")
  • str.split(n=2):按空格拆分字符串,最多拆分2次,得到包含前两个词和剩余内容的列表
  • str[:2]:截取列表的前两个元素
  • str.join(" "):将两个元素用空格拼接成完整字符串

内容的提问来源于stack exchange,提问作者Harshith K R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:45:34