Python 基于行字符串的熊猫数据帧上的Ifelse

Python 基于行字符串的熊猫数据帧上的Ifelse,python,string,if-statement,pandas,Python,String,If Statement,Pandas,这是一个简单的问题。任务是检查一列中的字符串是否包含另一列中存储的所有单词。基于此,做点什么。下面是一个简单的例子 import pandas as pd df = pd.DataFrame({'Strings':["The brown","fox smoked 6", "cigarettes per day", "in his cave"], 'Set': ["Alpha", "Beta", "Gamma", "Delta"]}) ... >>> df Set

这是一个简单的问题。任务是检查一列中的字符串是否包含另一列中存储的所有单词。基于此,做点什么。下面是一个简单的例子

import pandas as pd

df = pd.DataFrame({'Strings':["The brown","fox smoked 6", "cigarettes per day", "in his cave"], 
'Set': ["Alpha", "Beta", "Gamma", "Delta"]})

... >>> df
     Set             Strings
0  Alpha           The brown
1   Beta        fox smoked 6
2  Gamma  cigarettes per day
3  Delta         in his cave
>>> 
现在我想检查df[“Strings”]的每一行是否包含单词“smoked”和数字“6”(这里第3行是这样)。如果是这样,我需要新列df[“Result”]与df[“Set”]相等,但要添加“损害健康”字样。如果不只是复制df[“Set”]中包含的内容。输出应如下所示:

... >>> df_final
     Set             Strings   Result
0  Alpha           The brown   Alpha
1   Beta        fox smoked 6   Beta health damaging
2  Gamma  cigarettes per day   Gamma
3  Delta         in his cave   Delta
>>>  

您可以构造2个条件的掩码,并将其传递给:


此处,掩码将使用和we以及条件一起测试字符串的存在性,以生成掩码。

您可以构造一个包含2个条件的掩码,并将其传递给:


这里的掩码使用和我们以及条件一起测试字符串是否存在,以制作掩码。

谢谢!太快了。我会等一天再表扬你的答案-也许有人想出了另一个解决方案,但这个很好。再次感谢,谢谢!太快了。我会等一天再表扬你的答案-也许有人想出了另一个解决方案,但这个很好。再次感谢。
In [20]:

mask = (df['Strings'].str.contains('6')) & (df['Strings'].str.contains('smoked'))
In [23]:

et
df['Result'] = np.where(mask, df['Set'] + ' health damaging', df['Set'])
df
Out[23]:
     Set             Strings                Result
0  Alpha           The brown                 Alpha
1   Beta        fox smoked 6  Beta health damaging
2  Gamma  cigarettes per day                 Gamma
3  Delta         in his cave                 Delta