调用同一pandas处理函数两次时报df3参数缺失错误如何解决?
错误原因
自定义的add函数声明了df、df3两个必填位置参数,两次调用时均仅传入1个参数,且函数内部逻辑未用到df3参数,属于参数定义冗余导致的调用报错。
修复方法
1. 调整函数定义
直接删除冗余的第二个参数即可:
def add(df): df["timestamp"] = pd.to_datetime(df["timestamp"]) df = df.groupby(pd.Grouper(key = "timestamp", freq = "h")).agg("mean") price = df["price"] amount = df["amount"] return (price * amount) // amount
调整后原有调用逻辑不需要做任何修改,即可正常运行。
2. 兼容多参数场景的可选方案
如果后续需要在不同场景下传入不同参数,可以给参数设置默认值,兼容两种调用形式:
def add(df, df3=None): # 若后续需要用到df3可在此处添加对应逻辑 df["timestamp"] = pd.to_datetime(df["timestamp"]) df = df.groupby(pd.Grouper(key = "timestamp", freq = "h")).agg("mean") price = df["price"] amount = df["amount"] return (price * amount) // amount
该定义下既支持单参数调用add(df),也支持双参数调用add(df, df3),不会触发参数缺失报错。
内容的提问来源于stack exchange,提问作者SRP
相关产品推荐
相关产品推荐

