簡體   English   中英

Python/ Pandas:在 DataFrame 列中搜索一個單詞並從字典中獲取它的值

[英]Python/ Pandas : Search for a word in a DataFrame column and take it's value from a dictionary

我有一個帶有文本列的 dataframe

文本
我需要一把新雨傘
我需要新鞋

我創建了這樣的字典

dict = {'umbrella': '1','shoes':2}

我希望我的 output dataframe 看起來像這樣

文本 價值
我需要一把新雨傘 1
我需要新鞋 2

它應該在字典中查找鍵並針對 dataframe 中的行填充相應的值。

有人可以建議如何在 python 中做到這一點嗎?

您可以嘗試series.str.extractseries.map

df['Value'] = df['Text'].str.extract('('+'|'.join(d)+')',expand=False).map(d)

print(df)
                    Text Value
0  I need a new umbrella     1
1       I need new shoes     2

您可以拆分字符串並在字典中查找每個單詞:

df['Value'] = df['Text'].str.split().apply(lambda x: [dict[i] for i in x if i in dict.keys()])

print(df)
                    Text Value
0  I need a new umbrella   [1]
1       I need new shoes   [2]

這將返回所有匹配單詞的值列表。 如果你只想要 1 個值,你可以做df['Value'] = df['Value'].str[0]

這是另一種方式。

df['Value'] = df['Text'].replace(d,regex=True).str.extract(r'(\d)')

暫無
暫無

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

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