簡體   English   中英

檢查數據框中的關鍵字是否存在於另一個數據框列中

[英]Check if keyword in dataframe is present in another dataframe column

我想檢查另一個數據框中是否存在某些關鍵字。 如果 df2['name'] 中的列包含 df1['keywords'] 中的關鍵字,則在 df2 中的每一行中創建一個新列,滿足 df1['app'] 條件

df1 = pd.DataFrame({'keywords': ['Excel', 'Agir', 'ILAB', 'GPO', 'DTAV', 'BI', 'Twin'],
                'app': ['Microsoft Excel', 'App Agir', 'Laborátório Digital', ' Gestão do processo', 'Digital', 'Painel BI', 'Digital']})

df2 = pd.DataFrame({'name': ['Word', 'app Excel', 'Agir', 'GPO', 'Painel BI', 'Bob', 'Revit', 'Autocad', 'Acces']})

在 df2 中,我需要創建一個新列並填充匹配結果

例如,關鍵字 'Excel' 出現在 df2 的第二行中,所以我想在 df2['new column'] 列中填充這一行,該行與 df1['app'] 中的關鍵字 Excel 對應,即'微軟Excel

謝謝

使用str.extract()df2.name提取關鍵字:

keywords = '|'.join(df1.keywords)
extracted = df2.name.str.extract(rf'({keywords})')[0].values

# array([nan, 'Excel', 'Agir', 'GPO', 'BI', nan, nan, nan, nan],
#       dtype=object)

然后使用reindex()extracted關鍵字轉換為其對應的df1.app值:

df2['new column'] = df1.set_index('keywords').reindex(extracted).app.values

#         name           new column
# 0       Word                  NaN
# 1  app Excel      Microsoft Excel
# 2       Agir             App Agir
# 3        GPO   Gestão do processo
# 4  Painel BI            Painel BI
# 5        Bob                  NaN
# 6      Revit                  NaN
# 7    Autocad                  NaN
# 8      Acces                  NaN

暫無
暫無

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

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