我从一个网站上提取了有关房价的数据,然而,价格列有诸如"报价超过$790,00"我想能够提取价格,我试过了
test={'Price':['$593,000','$320,000+ price range','Offers Over $795,000'],'Bedrooms':['3','2','1']}
Houses=pd.DataFrame(test)
Houses['Price'].str.extract(pat='([$].)')
但是,这只提取$和第一个数字,而不提取整个数字。
这里应该使用的一般正则表达式模式是:
$d{1,3}(?:,d{3})*b
演示Python代码:
Houses['Amount'] = Houses['Price'].str.extract(pat=r'$(d{1,3}(?:,d{3})*)b')
如果您可能需要满足包含十进制成分的房价,那么只需使用此正则表达式:
$d{1,3}(?:,d{3})*(?:.d+)?b