gpt4 book ai didi

python - 根据列使用函数满足的条件在 Pandas 中创建新列

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:20 25 4
gpt4 key购买 nike

我在 Pandas 数据框中有几列。基于每一列,我需要创建一个新列。此功能有效:

def f(row):
if row['col_1'] == 0:
val = 'Neutral'
elif row['col_1'] > 0:
val = 'Growth'
else:
val = 'Contraction'
return val

df['New_Col_1'] = df.apply(f(row) , axis=1)

但由于我有多个列用于比较(col_2、col_3 等),我想将列的名称作为参数传递给函数。

def f(row,col_name):
if row[col_name] == 0:
val = 'Neutral'
elif row[col_name] > 0:
val = 'Growth'
else:
val = 'Contraction'
return val

df['New_Col_1'] = df.apply(f(row,'col_1') , axis=1)

但是,有一个错误。它说参数“行”未定义。我该如何克服这个问题?

最佳答案

查看 df.loc[],它有两个参数,您可以将其视为 row-spec 和 column-spec,因此您可以像这样使用它:

df['New_Col_1'] = 'Contraction' # Default, to be overwritten below
df.loc[df['col_1'] == 0, 'New_Col_1'] = 'Neutral'
df.loc[df['col_1'] > 0, 'New_Col_1'] = 'Growth'

关于python - 根据列使用函数满足的条件在 Pandas 中创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42949291/

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