提取价格文本 Pandas

Extracting price text Pandas

我已经从一个网站上提取了有关房价的数据,但是,价格栏中有诸如“offers over $790,00”之类的文字,我希望能够提取价格,我试过了

 test={'Price':['3,000','0,000+ price range','Offers Over 5,000'],'Bedrooms':['3','2','1']}
 Houses=pd.DataFrame(test)
 Houses['Price'].str.extract(pat='([$].)')

但是,这只会提取 $ 和第一个数字,但不会提取整个数字。

此处应适用的通用正则表达式模式是:

$\d{1,3}(?:\,\d{3})*\b

Demo

Python代码:

Houses['Amount'] = Houses['Price'].str.extract(pat=r'$(\d{1,3}(?:\,\d{3})*)\b')

如果您可能需要迎合包含小数部分的房价,那么只需使用此正则表达式即可:

$\d{1,3}(?:\,\d{3})*(?:\.\d+)?\b