蟒蛇熊猫 |如何将从一列中提取的关键字分配给另一列



我有一个熊猫数据帧,如下所示,每个元组中都有文本字符串:

  Text Col
-----------
I have an apple.
She eats orange.
Tom likes banana and orange

我想从"文本 Col"中提取关键字,并将关键字分配为另一列"关键字 col"中的值

  Text Col                              KeyWord
-----------------------------------------------------
I have an apple.                        apple
She eats orange.                        orange
Tom likes banana and orange             banana, orange

我只知道我可以检查字符串是否包含特定的关键字 df['Text Col'].str.contains('apple|orange|banana')但我不知道如何将列中包含的关键字分配给另一列。

用谷歌搜索过,但没有任何类似的问题。有人可以帮我解决这个问题吗?

非常感谢!

使用 .str.extract ,例如

df['Text Col'].str.extract('(apple|orange|banana)', expand = False)

.extractall后跟.unstack(如果预计有多个匹配项):

matches = df['Text Col'].str.extractall('(apple|orange|banana)').unstack()

你需要加入它们;如果你的数据集很小,你可以在纯Python中做到这一点:

df['extracted'] = [','.join(filter(None,li)) for li in matches.values]

如果你坚持在熊猫中这样做,你可以在列上使用循环,尽管它看起来很混乱:

df['extracted'] = ''
for _,col in matches.fillna('').iteritems():
    df['extracted'] += col + ','
df['extracted'] = df['extracted'].str.rstrip(',')

最新更新