Python 基于现有列创建新列。使用1或0

Python 基于现有列创建新列。使用1或0,python,dataframe,for-loop,split,conditional-statements,Python,Dataframe,For Loop,Split,Conditional Statements,以下是数据帧: 我想以二进制格式添加4个新列(“商务旅行”、“休闲”、“团体”、“情侣”和“情侣”)。如果该行包含“商务旅行”,则在“商务旅行”列中为该行输出1,如果不输出0。其他列的逻辑相同。以下是预期的输出: 事实上,我自己想出了以下解决方案,如果您还有其他更好的解决方案,请告诉我。谢谢 from re import search def tags(data, tag): data[tag] = data['Review_tags'].apply(lambda x: 1 if s

以下是数据帧:

我想以二进制格式添加4个新列(“商务旅行”、“休闲”、“团体”、“情侣”“情侣”)。如果该行包含“商务旅行”,则在“商务旅行”列中为该行输出1,如果不输出0。其他列的逻辑相同。以下是预期的输出:


事实上,我自己想出了以下解决方案,如果您还有其他更好的解决方案,请告诉我。谢谢

from re import search

def tags(data, tag):
    data[tag] = data['Review_tags'].apply(lambda x: 1 if search(tag, x) else 0)
    return data

tags(df, 'Leisure')
tags(df, 'Business')
tags(df, 'Couple')
tags(df, 'Group')

看,这回答了你的问题吗?不完全是,在你的链接中,它回答了如何获取现有两个分类列的假人。我只有一列,每行包含多个字符串。我想创建4个新列,并根据此行是否包含该字符串返回1或0。我找到了另一种方法!
data[tag]=数据['Review_tags'].str.count(tag)