![](/img/trans.png)
[英]Remove duplicates and keep row that certain column is Yes in a pandas dataframe
[英]keep match in pandas Dataframe column and remove the rest
我有一個名為名稱的列表
names = ['kramer hickok', 'carlos ortiz ', 'talor gooch', 'mikumu horikawa', 'yoshinori fujimoto']
另外,我有一個名為page的pandas.DataFrame
。 dataframe 如下所示:
name
-- ---------------------------
0 kramer hickok united states
1 carlos ortiz mexico
2 talor gooch united states
3 mikumu horikawa japan
4 yoshinori fujimoto japan
我想替換列中的所有國家/地區。 我怎樣才能盡快做到這一點?
所需的 output:
name
-- ---------------------------
0 kramer hickok
1 carlos ortiz
2 talor gooch
3 mikumu horikawa
4 yoshinori fujimoto
我嘗試了以下沒有結果:
for name in names:
page['name'] = page['name'].str.extract(name)
謝謝
你可以試試.str.extract
page['out'] = page['name'].str.extract(r'\b(' + '|'.join(names) + r')\b')
print(page)
name out
0 kramer hickok united states kramer hickok
1 carlos ortiz mexico carlos ortiz
2 talor gooch united states talor gooch
3 mikumu horikawa japan mikumu horikawa
4 yoshinori fujimoto japan yoshinori fujimoto
5 mikumumikumu horikawa japan NaN
完全更換色譜柱怎么樣?
page['name'] = names
我認為這將花費更少的時間並且更容易處理。
(※請注意,如果使用此代碼,名稱中不應有重復。)
如果每個名字都只是兩個詞,你甚至不需要你的列表:
df.name = df.name.str.extract('(\w+ \w+)')
print(df)
# Output:
name
0 kramer hickok
1 carlos ortiz
2 talor gooch
3 mikumu horikawa
4 yoshinori fujimoto
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.