繁体   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