![](/img/trans.png)
[英]How to take part of string value from column in DataFrame in Python Pandas?
[英]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.extract
和series.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.