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

如何在Pandas中调用带另一列参数的函数添加新列?

问题描述

我有一个包含supplier_code列的DataFrame:

supplier_code
V1001
V1002
V1003

我想添加新列Supplier Balance,通过将supplier_code作为参数调用函数实现。所用函数为:

get_balance_on(party_type="Supplier", party="V1001")

该函数会返回单个供应商的余额。我尝试了以下代码,但出现索引相关错误:

df["balance"] = get_balance_on(party_type="Supplier", party=df["supplier_code"])
解决方案

问题出在get_balance_on函数只能接受单个供应商编码(字符串类型),但你直接传入了整个supplier_code列(Series对象),函数无法处理这种批量输入,所以报错。

你可以用Pandas的apply方法,逐行对supplier_code列的每个值调用函数:

df["Supplier Balance"] = df["supplier_code"].apply(
    lambda x: get_balance_on(party_type="Supplier", party=x)
)

如果函数调用比较耗时,还可以用swifter库来加速(需要先安装swifter):

import swifter

df["Supplier Balance"] = df["supplier_code"].swifter.apply(
    lambda x: get_balance_on(party_type="Supplier", party=x)
)

另外,用列表推导式批量获取余额再赋值也是可行的:

balances = [get_balance_on(party_type="Supplier", party=code) for code in df["supplier_code"]]
df["Supplier Balance"] = balances

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:56:29