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

如何用单参数双返回值函数一次性更新Pandas DataFrame多列?

Pandas通过单参数多返回值函数更新多列的解决方案

完整可运行代码

import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [10, 20, 30],
    'C': [100, 200, 300]
})

# 定义要应用的函数
def my_function(x):
    return x*2, x*3  # 函数返回包含两个值的元组

# 核心更新操作
df[['A', 'B']] = df['C'].apply(my_function).apply(pd.Series)

# 输出验证结果
print(df)

两种常用实现方式

  • 基础实现:用apply(pd.Series)拆分元组
    对C列应用函数后,会得到一个元素为元组的Series,通过apply(pd.Series)可以将每个元组拆分为两列,直接赋值给A、B列即可完成更新。

  • 高效实现:转为列表构造DataFrame
    如果处理大数据集,推荐使用tolist()将元组Series转换为列表,再构造DataFrame并指定索引,减少额外的函数调用开销:

df[['A', 'B']] = pd.DataFrame(df['C'].apply(my_function).tolist(), index=df.index)

运行结果

执行后DataFrame的A列会被替换为C列值的2倍,B列替换为C列值的3倍,最终输出:

A    B    C
0  200  300  100
1  400  600  200
2  600  900  300

内容的提问来源于stack exchange,提问作者Samuel O.D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:40:13