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

使用PySpark Pandas API添加DataFrame新列遇关键字错误的解决方法

解决PySpark Pandas DataFrame添加新列的关键字错误问题

直接用psdf['new column'] = list_with_values报错的核心原因是:PySpark Pandas DataFrame(psdf)底层基于Spark分布式架构,不像原生Pandas那样支持直接赋值普通Python列表来创建新列,必须用它兼容的API或数据类型。

下面是几种可行的实现方法:

方法1:使用assign()方法(推荐)

assign()是PySpark Pandas官方推荐的添加列的方式,能直接传入列名和对应值列表:

import pyspark.pandas as ps

df = spark.read.parquet(file)
psdf = ps.DataFrame(df)

# 针对带空格的列名,用字典解包的方式传入
psdf = psdf.assign(**{'new column': list_with_values})
# 如果列名不含空格,可使用更简洁的写法
# psdf = psdf.assign(new_column=list_with_values)

方法2:用ps.Series包装值列表

将普通Python列表转换成PySpark Pandas的Series类型后再赋值,就能被识别为新列:

import pyspark.pandas as ps

df = spark.read.parquet(file)
psdf = ps.DataFrame(df)

psdf['new column'] = ps.Series(list_with_values)

注意事项

  • 必须保证list_with_values的长度和psdf的行数完全一致,否则会抛出长度不匹配的错误。
  • 上述两种方法在Databricks笔记本和本地Python脚本中均适用,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:50:44