为了账号安全,请及时绑定邮箱和手机立即绑定

将具有多个参数的函数应用于多个列以创建新列

将具有多个参数的函数应用于多个列以创建新列

幕布斯7119047 2021-04-30 22:17:26
我想使用对我编写的函数的两个现有列的apply函数在pandas中创建一个新的数据框。使用的软件包:import math import scipy.stats as stimport pandas as pd以下函数用于计算Wilson得分置信区间的下限:def ci_lower_bound(wins, losses, a = 0.05):    n = wins + losses    if n == 0:        return 0    z = st.norm.ppf(1 - (1 - a) / 2)    phat = 1.0 * wins / n    lower = (phat - z * z / (2 * n) + z * math.sqrt( (phat*(1 - phat) + z /(4*n))/ n ))/(1 + z*z/n)    return lower我有一个人A与人B的拳击数据集,其中我有人A和B的赢/输。我要用于该函数的参数为:data['won_A'] #winsdata['lost_A'] #losses我想创建新列,称为data ['lower_bound_a'],使用下面的代码在上述函数上应用Apply。data['lower_bound_a'] =data.apply(ci_lower_bound, wins = 'won_A', losses = 'lost_A')但是,当我尝试上述代码时,出现以下错误消息:TypeError: ("ci_lower_bound() got multiple values for argument 'wins'", 'occurred at index age_A')
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

也许是这样的:

data['lower_bound_a']=data.apply(lambda x: ci_lower_bound(x['won_A'], x['lost_A']),axis=1)
print(data)


查看完整回答
反对 回复 2021-05-11
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信