繁体   English   中英

检查行值是否与列表中的值之一匹配,然后在新列中分配 1/0

[英]Check if row value match one of values in a list, then assign 1/0 in a new column

如何通过遵循这些条件在 pandas dataframe 中创建新列?

如果列“ Ex ”与此列表中的元素之一匹配l=['cnn', 'nba', 'agi', 'apple']则:

为上面列表中的那些元素创建一个新列S ,其值为1

例如:

原厂dataframe:

Ex

cnn
dog
mine
agi

Output 预期:

Ex          S

cnn         1
dog         0
mine        0
agi         1

我将按如下方式处理问题:

df['S']=df['Ex'].apply(lambda x: any([k in x for k in l]))

检查行是否与l中的一个值匹配(我不想要“包含”条件)。 我不知道如何分配值 1 或 0,但我认为添加一个 if 语句。

你可以做isin

df['S']=df['Ex'].isin(l).astype(int)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM