Visualizing Airbnb listings.

[This article was first published on Stencilled, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

In this day and age of so many sharing services like Uber and Lyft , pricey hotels are being replaced by Airbnb. Students, working people and travelers wouldn’t always want to pay a high price for staying a couple of nights at the Marriott and would rather stay at a place where that has the basic amenities needed for them at a reasonable price. In this project I am trying to understand the listings put on Airbnb on how the price varies by neighborhood ,house type and various other factors.

I am using the data for New York for this post. To start with we can see the properties listed by neighborhood across New York.In the table below you can see the count for the Airbnb listings aggregated at burrough level and neighborhood level.

Bronx 649
Brooklyn 16810
Manhattan 19212
Queens 3821
Staten Island 261

Allerton 23
Arden Heights 6
Arrochar 14
Arverne 71
Astoria 755
Bath Beach 11
Battery Park City 65
Bay Ridge 91
Bay Terrace 5
Bay Terrace, Staten Island 1
Baychester 6
Bayside 40
Bayswater 8
Bedford-Stuyvesant 2850
Belle Harbor 5
Bellerose 10
Belmont 8
Bensonhurst 44
Bergen Beach 3
Boerum Hill 153
Borough Park 90
Briarwood 28
Brighton Beach 46
Bronxdale 12
Brooklyn Heights 129
Brownsville 42
Bushwick 1937
Cambria Heights 13
Canarsie 75
Carroll Gardens 227
Sunset Park 312
Theater District 173
Throgs Neck 8
Todt Hill 2
Tompkinsville 28
Tottenville 3
Tremont 5
Tribeca 156
Two Bridges 55
Unionport 4
University Heights 16
Upper East Side 1543
Upper West Side 1782
Van Nest 10
Vinegar Hill 26
Wakefield 21
Washington Heights 870
West Brighton 11
West Farms 6
West Village 780
Westchester Square 2
Westerleigh 2
Whitestone 5
Williamsbridge 24
Williamsburg 3719
Windsor Terrace 128
Woodhaven 36
Woodlawn 6
Woodrow 2
Woodside 113

####Summarizing Price

As we saw the count for listings at neighborhood and burrough level below are the prices .

Bronx 83
Brooklyn 120
Manhattan 181
Queens 95
Staten Island129
Allerton 69
Arden Heights 63
Arrochar 223
Arverne 93
Astoria 99
Bath Beach 106
Battery Park City 221
Bay Ridge 90
Bay Terrace 144
Bay Terrace, Staten Island 75
Baychester 54
Bayside 86
Bayswater 81
Bedford-Stuyvesant 102
Belle Harbor 166
Bellerose 91
Belmont 56
Bensonhurst 81
Bergen Beach 154
Boerum Hill 158
Borough Park 112
Briarwood 130
Brighton Beach 112
Bronxdale 66
Brooklyn Heights 255
Brownsville 72
Bushwick 84
Cambria Heights 75
Canarsie 126
Carroll Gardens 183
Sunset Park 106
Theater District 232
Throgs Neck 98
Todt Hill 257
Tompkinsville 69
Tottenville 218
Tremont 62
Tribeca 353
Two Bridges 123
Unionport 65
University Heights 60
Upper East Side 173
Upper West Side 195
Van Nest 170
Vinegar Hill 173
Wakefield 108
Washington Heights 91
West Brighton 77
West Farms 205
West Village 240
Westchester Square 70
Westerleigh 785
Whitestone 148
Williamsbridge 92
Williamsburg 140
Windsor Terrace 129
Woodhaven 59
Woodlawn 69
Woodrow 458
Woodside 83

We could also see the listings per zip code level. I have use Ari Lamstien’s R package choroplethrzip . Taking the five burroughs of New York and all the zip codes within them I aggregated the listings per zipcode and mapped them .As you can see Manhattan and Brooklyn regions are the one with most listings.

Listings per zipcode

The Airbnb listings are generally categorized as an Entire Apartment / Home , private room and shared room.Below is the pricing for each type of listing.

Room TypePrice
Entire home/apt207
Private room 88
Shared room 71

This graph below shows how each of the Burroughs have listings by property type.

Property Type at Burrough level

To understand how the listings are spatially located I did plot them and bin them by property time to visualize where the listings are shared or entire apartment.

Property Type Mapped

Subway vs Rental Listings

Apart from all the amenities mentioned in the listing one of the most important factor when it comes to booking a listing in New York is the proximity to a subway stop. I downloaded a json for the subways and plotted them against the listings. Considering that people want to live close-by I took as 0.1 mile as a walking distance , I created a buffer to capture all the listings inside that 0.1 mile ring.I took the top 20 to understand which of the subway stations had the most listings nearby.

Top 20 subway stations

The same results were also plotted on the map using the leaflet package to visualize where these subway stations are located and how many listings they have using the graduated symbols.

Top 20 subway stations Map


The description and the photos put by the property owner plays an important role for anyone to book a listing . A word-cloud of those description helps us understand what do property owners mention in the description which might help them in more bookings.

Description Word Cloud


When you book a listing in Airbnb I assume the first thing we look for is does the listing have wifi /internet . So based on the amenities provided across all listings I mapped a word cloud to see what are the top amenities listed by the owners for the property.


Reviews Once the user goes through the list of amenities they do scroll down through the reviews to see what people who have stayed in this property thought about. Was the property as per mentioned in the listing ? Was the bed making noise ? Any suggestions for restaurants nearby?


What Next

The next stage for this project is to identify a relationship between the proximity of listing to subway stations , amenities listed for the property,POI’s such as restaurants, workplace, demographic variables such as daytime population. A shiny app which would show the listings and various layers such as rental price by geographies , all in one place for all the cities Airbnb have the rentals listed.

To leave a comment for the author, please follow the link and comment on their blog: Stencilled. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)