Scrape StreetEasy to Analyze NYC Home Prices with Data

Posted on Mar 6, 2016

Contributed by Wendy Yu. She is currently in the NYC Data Science Academy 12 week full time Data Science Bootcamp program taking place between January 11th to April 1st, 2016. This post is based on her third project - Web scraping.(due on 2th week)

Scrape StreetEasy to analyze housing price in NYC

My goal is to collect housing prices for both rental and sale in New York city. I looked at three major real estate website including Trulia, Zillow, and StreetEasy. Comparing to the other two websites, StreetEasy gives the most information on the searching results page and the format of each listing is very consistent, which is great for the purpose of web-scraping.


Web Scraping

Web scraping is done using the beautifulsoup package in Python. I created two functions that can loop through all the pages of searching results, and also empty strings to store results. Below are the steps I took to scrape StreetEasy:

  1. Analyzing the HTML page: HTML code of a web page can be viewed by right click and selecting 'Inspect'. This helps us identifying the HTML tags of the information to be scraped
  2. Screen Shot 2016-03-06 at 3.39.07 PM Making the soup!: It is important to select the correct parser for your data type. I used HTML parser.
  3. Navigating the parse tree and iterate through tags: once the soup is made, we have the HTML code in Python. We can then find our desired information by searching through HTML tags.

Screen Shot 2016-03-06 at 3.28.46 PM

Screen Shot 2016-03-06 at 3.29.50 PM

Data Manipulation

For some listings the information on number of bedroom, number of bathroom, and apartment size is incomplete or mixed up. I performed data manipulation to fix the mistaken values and cleaned up the extra symbols such as comma and dollar sign.
Finally, I have two data sets containing the housing information of apartments for rent and apartments for sale. The for sale data set has 8,456 rows and 8 columns, and the for rent data set has 20,988 rows and 7 columns

Data analysis to identify the most / least investable neighborhoods in NYC

My goal is to identify the most and least profitable neighborhoods in New York City
The ideal neighborhood for investing apartments would have

  1. high rental price
  2. low sale price

So the rent would be higher than the monthly mortgage payment to make a profit.

To achieve my goal, I need a way to compare the rental prices and sale prices. For each neighborhood, I calculated two things:

  1. unit price per square foot for rental prices, and unit price per square foot for sale prices
  2. averaged monthly mortgage under the assumption of 20% down payment, 3.5% annual interest rate, and 30 years mortgage period

Before we begin to compare rental price and sale price, it is important to have a first glance at the dataset. I noticed that some neighborhoods have very few number of listings. The low number of listings could introduce instability and lead to false results. Therefore, I removed neighborhoods with equal or less than 5 listings to ensure the quality of the data. The figure below shows the number of listings (count) and its frequency.

Screen Shot 2016-03-06 at 3.52.35 PM

The table below is some examples of the neighborhoods with more than 5 listings. For instance, one square foot in Astoria costs $2.95 to rent and $792 to buy, and one square foot in Battery Park City costs $6.15 to rent and $2010.6 to buy.

Screen Shot 2016-03-06 at 3.56.42 PM
We can expect a linear relationship between the rent unit price and sale unit price; if it costs more to buy, it should cost more to rent. I am interested in the outliers of this linear regression. There are two types of outliers:

  1. Outlier that are located above the regression line with abnormally high sale price (Nolita, Little Italy, Midtown)
  2. Outliers that are located below the regression line with abnormally low sale price (Beekman, Kips Bay)

Type 2 outliers are more likely to be profitable and type 1 outlier are less likely to be profitable.

Screen Shot 2016-03-06 at 3.58.13 PM

Looking at the plot above, any points above the regression line have higher sale unit price than the fitted values, indicating they are less likely to be profitable. On the other hand, any points below the regression line have higher unit rental price than the fitted values, suggesting the higher likelihood of being profitable. Outliers are the extreme cases in these two circumstances.

Outlier has the unusual, either very large or very small, y value given its x value. In other words, comparing to all the apartments with rental unit price of $5, Kips Bay is has the lowest sale unit price, and therefore is the most profitable given rental price equals to $5. However, it is not clear that Kips Bay is the most profitable neighborhood comparing to the rest of neighborhoods located below the regression line. For example, neighborhood X with $500 sale unit price and $2.9 rent unit price is more profitable than Kips Bay with $1000 sale unit price and $5 rent unit price, but neighborhood B is not an outlier.

To  assess the profitability more accurately, I calculated the ratio of rent unit price over sale unit price and plotted the distribution of the ratios. Neighborhoods with higher ratio are more profitable.

Screen Shot 2016-03-06 at 4.01.25 PM

From this analysis, the top 5 least profitable neighborhoods are listed below and showed in a map. This results matches the linear regression analysis.

Screen Shot 2016-03-06 at 4.02.47 PM

Now, the top 5 most profitable neighborhoods are listed below and also showed in a map.

Screen Shot 2016-03-06 at 4.03.52 PM

This analysis is based solely on the active listings on on 2/18/2016, not considering property tax, HOA fees, utilities, and other fees.

The full Python code for this analysis can be viewed at

About Author

Wendy Yu

As a biologist, Wendy believes in evidence-base analysis, and is passionate about data. Wendy graduated from the University of Pennsylvania in 2013 with a Masters in Biotechnology. While pursuing a career as a biologist Wendy quickly realized that...
View all posts by Wendy Yu >

Related Articles

Leave a Comment

Google October 13, 2019
Google Here are some hyperlinks to web pages that we link to simply because we feel they may be really worth visiting.
Google September 15, 2019
Google We came across a cool internet site which you may well get pleasure from. Take a appear should you want.
hermes clic clac h bracelet pour homme fausse May 3, 2017
I have been absent for some time, but now I remember why I used to love this blog. Thank you, I¡¦ll try and check back more frequently. How frequently you update your website? hermes clic clac h bracelet pour homme fausse
James December 28, 2016
Hey wendy yu, i installed python and bsp4 and im have trouble with gettig the data. Can you help me out ? I have python 2.7.13 and beautifulshop4-.4.4.1 Are these the right one?
Wendy Yu October 11, 2016
Hi Emrah, Can you be more specific? Thanks, Wendy
emrah yalaz October 11, 2016
Hi Wendy, would you be interested in doing this analysis for me? best, emrah May 9, 2016
This is a really good tip particularly to those new to the blogosphere. Brief but very precise info… Thank you for sharing this one. A must read post!

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI