gpt4 book ai didi

python - Pandas:如何将列名传递给可以在 'apply' 中使用的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:16 25 4
gpt4 key购买 nike

我有一个功能:

def logit_categorisation(row, column_name):
val = 0
if row[column_name] > 0.6:
val = 1
elif 0.4 < row[column_name] < 0.6:
val = 2
else:
val = 0
return val

然后我想将其用于:

def create_logit_value(df, name_of_column, d):
df[name_of_column] = df.apply(general_logit, args=(d,), axis=1)
df[name_of_column + '_category'] = df.apply(logit_categorisation, args=(df[name_of_column],), axis=1)

并像这样应用函数:

create_logit_value(r, "the_test_column", {'age':-.02742, 'dlco': 0.0053058 })

我收到此错误(对于 create_logit_value 函数中的第二行):

 ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', 'occurred at index 0')

我认为这是因为当我调用 row[column_name] 时,我在 logit_categorisation 函数中传递了一系列而不是离散值,但我不知道如何以这种方式提取值。

最佳答案

最好不要这样做。您的函数仅使用行名称和列名称来对单个值进行操作。因此,只需让您的函数直接接受该值(即您当前调用的值 row[column_name])作为其参数,然后您可以执行以下操作:

df[name_of_column + '_category'] = df[name_of_column].map(logit_categorization)

关于python - Pandas:如何将列名传递给可以在 'apply' 中使用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628990/

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