You need to enable JavaScript to run this app. Pandas使用apply调用自定义函数缺少liabilities参数报错的解决方法
优惠活动
大模型
产品
解决方案
定价
更多

Pandas使用apply调用自定义函数缺少liabilities参数报错的解决方法

报错原因

你调用apply方法时默认按列传递数据,每次会把整列作为单个参数传给calc_equity函数,但你的自定义函数要求传入2个位置参数,因此触发参数缺失报错。

解决方案

这里提供两种可行修改方式,可按需选择:

方式1:通过apply按行读取指定列计算(适用于逻辑更复杂的自定义函数场景)

修改apply调用逻辑,指定按行遍历,从每行中取出对应列的值传给自定义函数:

import numpy as np
import pandas as pd

PATH = r'C:\Users\ADMIN\Desktop\Net_Present_value.csv'
data1 = pd.read_csv(PATH)

def calc_equity(assets,liabilities):
    return liabilities - assets

# 核心修改:指定axis=1按行遍历,用lambda提取对应列的值传入函数
data1['equity'] = data1.apply(lambda row: calc_equity(row['assets'], row['liabilities']), axis=1)

注意:请确保你的CSV文件读取后生成的data1中存在assets、liabilities两个列,列名和大小写要和实际数据保持一致。

方式2:直接使用Series向量化运算(性能最优,优先推荐)

你的计算逻辑仅为两列相减,不需要调用apply,直接对列做向量化运算即可,运行效率远高于apply遍历:

import numpy as np
import pandas as pd

PATH = r'C:\Users\ADMIN\Desktop\Net_Present_value.csv'
data1 = pd.read_csv(PATH)

data1['equity'] = data1['liabilities'] - data1['assets']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 14:27:01