簡體   English   中英

用條件替換單詞

[英]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.0010.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.

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