[英]Replacing words with conditions
我需要檢查一行是否包含一個數字 (n)、一個空格和列表中的一個單詞(house、houses、casa、case),以便將其替換為
10.00
如果數字等於1
;10.00*n
其中n
是不等於1
的數字。例子:
H_C
4 case
9 apart
1 house
預期 output
H_C New_H_C
4 case 40.00
9 apart 9 apart
1 house 10.00
我嘗試使用re.search
的組合查看列表(house、houses、case、casa)和strip
以添加.00
,但我對如何使用它來確定條件10.00
和10.00*n
感到困惑。
我希望你能幫助我。
您可以執行此正則表達式:
words = ['house', 'houses', 'casa', 'case']
# extract the relevant numbers
s = df.H_C.str.extract(f'(\d+) ({"|".join(words)})')[0].astype(float)
# multiply with 20
# you can search for `format` string function
df['New_H_C'] = np.where(s.notna(),s.apply(lambda x:'{:.02f}'.format(x)),
df['H_C'])
Output:
H_C New_H_C
0 4 case 4.00
1 9 apart 9 apart
2 1 house 1.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.