提取价格文本 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
Python代码:
Houses['Amount'] = Houses['Price'].str.extract(pat=r'$(\d{1,3}(?:\,\d{3})*)\b')
如果您可能需要迎合包含小数部分的房价,那么只需使用此正则表达式即可:
$\d{1,3}(?:\,\d{3})*(?:\.\d+)?\b
我已经从一个网站上提取了有关房价的数据,但是,价格栏中有诸如“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
Python代码:
Houses['Amount'] = Houses['Price'].str.extract(pat=r'$(\d{1,3}(?:\,\d{3})*)\b')
如果您可能需要迎合包含小数部分的房价,那么只需使用此正则表达式即可:
$\d{1,3}(?:\,\d{3})*(?:\.\d+)?\b