我有 Pandas 資料框,其中包含這樣的 url 串列:
api
https://apis.us/image/
https://apis.emea/video/
https://apis.asia/docs/
https://apis.general/
我想要一個新的列region,它將告訴 url 的相應區域,如果 url 中沒有區域,則將其標記為global.
api region
https://apis.us/image/ us
https://apis.emea/video/ emea
https://apis.asia/docs/ asia
https://apis.general/ global
我怎樣才能以有效的方式實作這一目標?對于所有網址,我必須使用這三個區域進行搜索us, emea and asia
uj5u.com熱心網友回復:
如果在apis.文本使用后需要測驗值Series.str.extract,首先使用正面回顧,將串列中的可能值連接起來,將不匹配的值替換為Series.fillna:
vals = ['us','emea','asia']
df['region'] = (df['api'].str.extract(rf'(?<=https://apis\.)({"|".join(vals)})')
.fillna('global'))
print (df)
api region
0 https://apis.us/image/ us
1 https://apis.emea/video/ emea
2 https://apis.asia/docs/ asia
3 https://apis.general/ global
如果需要測驗任何子字串:
vals = ['us','emea','asia']
df['region'] = df['api'].str.extract(rf'({"|".join(vals)})').fillna('global')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369419.html
下一篇:計算熊貓組內特定值的數量
