检查一列是否包含来自pandas数据框中另一列的单词

时间:2020-05-21 11:27:30

标签: python pandas dataframe

有一种方法可以检查一列(逗号分隔)中包含的值是否快速出现在另一列(句子)中。使用python保留存在的单词并删除pandas数据框中不存在的单词?

原始数据就是这样

|sentence      | word|
----------------------

Hello World    |world

Hi how are you |are, car

I am good      |good,bad,sad, am

,结果应该像。

|sentence      | word|
----------------------

Hello World    |world

Hi how are you |are

I am good      |good, am

应该考虑性能,因为这是一个巨大的数据集

1 个答案:

答案 0 :(得分:1)

由于大多数熊猫的字符串操作不是矢量化的,因此您可以像这样进行列表理解:

LogDisplay.LogAdvanced.Add("Some text");

输出:

df['word'] = [', '.join([w for w in ws if w in s]) 
                for s, ws in zip(df.sentence.str.lower(), df.word.str.split(',\s*'))
             ]

注意:这只是一个需要改进的想法,例如仅匹配单词(例如 sentence word 0 Hello World world 1 Hi how are you are 2 I am good good, am


如上所述,

更新,此改进仅与整个单词匹配:

regex