簡體   English   中英

Python熊貓| 如何將從一列中提取的關鍵字分配給另一列?

[英]Python pandas | how to assign keywords extracted from a column to another column?

我有一個熊貓數據框,如下所示,每個元組中都有文本字符串:

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

我想從“ Text Col”中提取關鍵字,並將關鍵字指定為另一列“ keyword 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]

如果您堅持要在pandas中執行此操作,則可以在列上使用循環,盡管看起來很混亂:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM