gpt4 book ai didi

python - 将函数应用于两列 Pandas

转载 作者:行者123 更新时间:2023-12-01 08:55:00 24 4
gpt4 key购买 nike

我正在尝试应用一个函数来计算 pandas 数据框的两列的 R2 分数。如果首先我按其他列分组,它会起作用,但是当应用于整个数据框时,它会失败。

这是有效的代码:

from sklearn.metrics import r2_score
df = pd.DataFrame({'cat':['A','A','B','B'], 'num1':[.1,.2,.3,.4],
'num2': [.1,.2,.3,.4]})

df.groupby('cat').apply(lambda x: r2_score(x['num1'],x['num2']))

有了这个输出:

cat
A 1.0
B 1.0
dtype: float64

但这不起作用:

df.apply(lambda x: r2_score(x['num1'],x['num2']))

出现关键错误: KeyError: ('num1', '发生在索引 cat')

有人可以解释为什么会出现这种情况,阐明 apply 函数的内部工作原理,并为后者 apply 提供解决方案吗?

最佳答案

我相信您需要传递列才能发挥作用:

a = r2_score(df['num1'],df['num2'])
print (a)
1.0

关于python - 将函数应用于两列 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52830374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com