Observatoire des loyers

Remarque

Ce jeu de données a un gros défaut: les statistiques au niveau des communes (ou des arrondissements) sont disponible que sur https://www.observatoires-des-loyers.org/ mais ont été retirées des fichiers CSV...

Récupération des données


In [ ]:
%matplotlib inline
#%matplotlib notebook

import matplotlib
matplotlib.rcParams['figure.figsize'] = (9, 9)

import pandas as pd

In [ ]:
url = "https://www.data.gouv.fr/fr/datasets/r/1fee314d-c278-424f-a029-a74d877eb185"
df2016 = pd.read_csv(url,
                     encoding='iso-8859-1',
                     sep=';',
                     decimal=',')

In [ ]:
url = "https://www.data.gouv.fr/fr/datasets/r/15d902ed-4dc3-457d-9c5d-bfe1151cb573"
df2015 = pd.read_csv(url,
                     encoding='iso-8859-1',
                     sep=';',
                     decimal=',')

In [ ]:
url = "https://www.data.gouv.fr/fr/datasets/r/42aaf838-46c9-4434-95a9-00173c6d4627"
df2014 = pd.read_csv(url,
                     encoding='iso-8859-1',
                     sep=';', 
                     decimal=',')

In [ ]:
frames = [df2014, df2015, df2016]
df = pd.concat(frames, ignore_index=True)

Informations utiles sur les données


In [ ]:
df.shape

In [ ]:
df.columns

Données par agglomération


In [ ]:
#df.Observatory.value_counts().plot.barh()

In [ ]:
df.agglomeration.value_counts().plot.barh()

Paris intra-muros


In [ ]:
dfp = df[df.agglomeration == "Paris intra-muros"]

In [ ]:
fig, (ax1, ax2) = plt.subplots(ncols=2, nrows=1, figsize=(10, 5))

dfp[dfp.Data_year == 2014].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax1)
dfp[dfp.Data_year == 2015].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax2)
#dfp[dfp.Data_year == 2016].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax3)

In [ ]:
dfp[dfp.Data_year == 2014].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        s=dfp[dfp.Data_year == 2014].nombre_obsservations,
                                        alpha=0.1)

In [ ]:
dfp[dfp.Data_year == 2015].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        #s=dfp[dfp.Data_year == 2015].nombre_obsservations,
                                        #c="blue",
                                        alpha=0.5)

Remarque: pourquoi cette grosse différence avec l'année précédente ?

Région Parisienne


In [ ]:
dfp = df[df.agglomeration == "Agglomération parisienne"]

In [ ]:
fig, (ax1, ax2) = plt.subplots(ncols=2, nrows=1, figsize=(10, 5))

dfp[dfp.Data_year == 2014].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax1)
dfp[dfp.Data_year == 2015].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax2)

In [ ]:
dfp[dfp.Data_year == 2014].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        #c=dfp[dfp.Data_year == 2014].nombre_obsservations,
                                        alpha=0.5)
                                        #cmap="Blues")

In [ ]:
dfp[dfp.Data_year == 2015].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        #s=dfp[dfp.Data_year == 2015].nombre_obsservations,
                                        #c="blue",
                                        alpha=0.5)

Région Parisienne


In [ ]:
dfp = df[df.agglomeration == "Agglomération parisienne (hors Paris)"]

In [ ]:
fig, (ax1, ax2) = plt.subplots(ncols=2, nrows=1, figsize=(10, 5))

dfp[dfp.Data_year == 2014].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax1)
dfp[dfp.Data_year == 2015].Type_habitat.value_counts().plot.pie(y="Type_habitat", ax=ax2)

In [ ]:
dfp[dfp.Data_year == 2014].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        #c=dfp[dfp.Data_year == 2014].nombre_obsservations,
                                        alpha=0.5)
                                        #cmap="Blues")

In [ ]:
dfp[dfp.Data_year == 2015].plot.scatter(x="moyenne_loyer_mensuel",
                                        y="surface_moyenne",
                                        #s=dfp[dfp.Data_year == 2015].nombre_obsservations,
                                        #c="blue",
                                        alpha=0.5)