gpt4 book ai didi

python - Pandas :如果列表中的值存在于行中的任何位置,则标记列

转载 作者:行者123 更新时间:2023-11-28 20:02:02 25 4
gpt4 key购买 nike

最终,我想用 0 或 1 标记一个新列“ExclusionFlag”,具体取决于列表中找到的值是否存在于行中的任何位置。

df = pd.DataFrame([['cat','b','c','c'],['a','b','c','c'],['a','b','c','dog'],['dog','b','c','c']],columns=['Code1','Code2','Code3','Code4'])
excluded_codes = ['cat','dog']

#Attempt
df['ExclusionFlag'] = df.apply(lambda x: 'cat' in x.values, axis=1).any()

#Desired outcome
#Side note: I have 120 rows to check. They're labeled Code1, Code2...Code120.

Code1 Code2 Code3 Code4 ExclusionFlag
0 cat b c c 1
1 a b c c 0
2 a b c dog 1
3 dog b c c 1

我的代码行将每一行标记为 True。

当我在我的 lambda 表达式中为“cat”添加 excluded_codes 列表时,出现错误。

我发现了几个这样的问题,但我通常看到的是类似(见下文)的内容,它调用了特定的列,但我认为遍历 120 列不是最好的方法。虽然我可能是错的。

df['ExclusionFlag'] = df['Code1'].isin(exclusion_codes)

最佳答案

有点像

df['ExclusionFlag'] = df.isin(excluded_codes).any(1).astype(int)

Code1 Code2 Code3 Code4 ExclusionFlag
0 cat b c c 1
1 a b c c 0
2 a b c dog 1
3 dog b c c 1

关于python - Pandas :如果列表中的值存在于行中的任何位置,则标记列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48510555/

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