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

如何在DataFrame中创建基于其他列计算值的新列

解决方法

从你提供的代码和需求来看,问题出在语法错误以及未使用对应DataFrame库的正确操作方式,分两种常见场景说明:

若使用PySpark(从limit(10)判断大概率是)

PySpark中新增列推荐用withColumn做列级运算(比逐行处理效率高),正确代码如下:

# 通过列直接相乘生成新列,覆盖原DataFrame
short_df = short_df.withColumn('Revenue', short_df['UnitPrice'] * short_df['Quantity'])
display(short_df.limit(10))

原代码的问题:short_df.(lambda...)多了一个多余的点,且PySpark不支持这种直接赋值lambda的方式。

若使用Pandas

Pandas中两种实现方式,优先选列运算:

方法1:直接列运算(推荐,效率更高)

short_df['Revenue'] = short_df['UnitPrice'] * short_df['Quantity']
display(short_df.head(10))

方法2:apply逐行处理

# 需指定axis=1表示按行处理
short_df['Revenue'] = short_df.apply(lambda row: row['UnitPrice'] * row['Quantity'], axis=1)
display(short_df.head(10))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:39:52