gpt4 book ai didi

Python Pandas,检查一行中某些列的条件?

转载 作者:行者123 更新时间:2023-12-01 03:01:16 25 4
gpt4 key购买 nike

我有一个数据框:

      var1  var2  var3  var4
Id#
1001 Y Y Y Y
1002 N N N N
1003 N N Y N
1003 Y Y Y N

我想创建一个名为 Small 的新列,其中如果有任何 var=Y 则 Small 等于 N

      var1  var2  var3  var4  Small
Id#
1001 Y Y Y Y N
1002 N N N N Y
1003 N N Y N N
1003 Y Y Y N N

我尝试过的解决方案:我创建了一个名为 is_small 的函数,只要一行中的列为“Y”,该函数就会翻转为“N”

def is_small(row, *cols):
_small = 'Y'
for col in cols:
if col == 'Y':
_small = 'N'
return _small

并将其应用到我的数据集:

all_data['Small'] = all_data.apply(lambda row: is_small(row,
'var1',
'var2',
'var3',
'var4'),
axis=1)

但是 Small 只是全部返回为“Y”,我不知道为什么。

最佳答案

你就快到了。但是每次您将文字“var1”、“var2”...传递给 is_small 时,这就是为什么它总是返回“Y”。您应该传递 row['var1'], row['var2']....

all_data['Small'] = all_data.apply(lambda row: is_small(row,
row['var1'],
row['var2'],
row['var3'],
row['var4']),
axis=1)

关于Python Pandas,检查一行中某些列的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43807416/

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