我有一个ID和名称的数据框(2 x 1.5e6)。另外,我还有很长的粗俗单词列表,保存在.txt文件中(需要存储在中央位置,并且需要不断更新)。
本质上,我试图将名称的数据框“匹配”到庸俗的单词列表。我希望在数据框上创建一个新变量('vulgar_flag'),并将其标记为0或1,具体取决于是否来自庸俗列表(.txt文件)中的单词是否是数据框中名称的子字符串。 / p>
当前,我的方法是读取庸俗的.txt文件并创建一个名为vulgar_scrub
的单词列表。然后,我有以下代码创建标志:
df['vulgar_flag'] = numpy.where(df.FULLNAME.str.contains('|'.join(vulgar_scrub)),1,0)
这似乎很笨拙,我想知道是否还有其他更有效的选择。这篇文章(Pandas lookup, mapping one column in a dataframe to another in a different dataframe)提到了使用df.merge
,尽管我不确定这是否支持我在寻找子字符串的检查。
主要只是想知道是否还有其他解决方案,或者我不知道的任何数据框功能。谢谢!