根据多列中是否至少有一列包含列表中的值来创建新列(Python、Pandas)

ua4mk5z4  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(157)

我正在尝试创建一个列,该列将根据N列中是否至少有一列包含列表中的值而具有True/False或1/0
我是这样做的

list = ['apple', 'banana', 'orange']
df['new'] = df['One'].isin(mylist) | df['Two'].isin(mylist).... |df['N'].isin(mylist)

如果N列中至少有一列包含值,是否有更快的方法来编写条件以评估新列中的"True"?
我试着去做

cols = ['One',...'N']
df['new'] = df[cols].isin(mylist)

但它不起作用

xlpyo6sf

xlpyo6sf1#

接近,如果每行至少有一个True,则需要DataFrame.any进行测试:

df['new'] = df[cols].isin(mylist).any(axis=1)

相关问题