Pandas:如果列表中的值存在于

2024-09-28 01:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

最后,我想用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'添加排除的代码列表时,我得到了一个错误。在

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

^{pr2}$

Tags: columnslambda代码标记dataframedf列表cat

热门问题