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