Portail data : Quandl et son API

couv0-2 Quandl est un portail de données vous donnant accès gratuitement à plus de 5 millions de datasets de données financières, économiques ou sociales. Quandl vous propose aussi  une API  pour nourrir vos analyses de données et reporting. Simple d’utilisation, les APIs vous permettent d’automatiser le flux entrant de données de vos analyses pour que vos données financières soient automatiquement mises à jour dans votre logiciel de manipulation de données. Découvrez comment profiter de ces milliers de dataframes en suivant le guide !

Les APIs, à quoi ça sert?

Une API (pour Application Programmation Interface ou interface de programmation) permet à deux applications d’échanger des données d’une manière automatisée et programmable par le biais d’une interface. On dit que celle-ci expose le service à un client/développeur/particulier.

  • Serveur : ordinateur puissant éxécutant un programme nommé API
  • API : partie « cachée » d’un site web qui est destinée à être consommée par les ordinateurs
  • Client : Un programme qui échange des données avec un serveur, au moyen d’une API

shema2

 Besoin d’un exemple?

Imaginons : vous venez de créer votre premier site web marchand. Vous souhaitez que vos futurs clients puissent acheter vos produits directement sur votre site mais, sans un très gros bagage technique, il vous est impossible de concevoir vous-même le code pour prendre en charge les différentes types de carte s bancaires, devises, pays etc. La solution est alors de trouver une solution extérieure à intégrer sur votre site : par exemple, l’API de Paypal qui vous permet de sélectionner les renseignements bancaires à la fin du processus d’achat. Il en existe bien d’autres !

logos1

Les exemples ci-dessus ne représentent qu’un type particulier d’API, les API ouvertes qui permettent la diffusion d’une ou de plusieurs fonctionnalités d’un produit au grand public. On trouve aussi d’autres types d’APIs dans un contexte business (BtoB) : les APIs  fermées (ou privées) pour un usage interne (par exemple pour faciliter l’échange d’informations entre différents services d’une société), et des API à destination des partenaires pour faciliter la communication et l’intégration logicielle entre votre entreprise et vos partenaires commerciaux. Une chose est sûre, la création d’une API par une entreprise est un projet important qui amène les décideurs à plusieurs réflexions sur : la sécurisation des données échangées, le(s) bénéfice(s) en terme d’image et de notoriété du service auprès du grand public et des communautés de développeurs, l’impact sur la structure du service etc. Découvrez la liste des 50 APIs les plus populaires en cliquant sur ce lien !

Comment fonctionne une API Rest ?

Il existe plusieurs types d’API (REST, SOAP, Javascript, etc.), mais la grande majorité d’entre elles sont des API REST (pour Representational State Transfer). Les APIs Rest se basent sur le protocole HTTP (Hypertext Transfer Protocol) qui permet aux différentes parties du web de communiquer entres-elles : client —> requête HTTP —–> Serveur. Crée par Roy Fielding, grand spécialiste du web en 2000 (il a notamment participé au développement des technologies HTML -initialement inventé par Tim Berners-Lee – , HTTP et URI et est aussi le cofondateur de la fondation Apache). Pour respecter les critères Rest, une API doit être :

  • Dotée d’une interface client-service uniforme
  • Sans état (le serveur n’a pas d’information sur l’état du client entre deux requêtes)
  • Cacheable (avec cache = mémoire)
  • Orientée client-serveur
  • Dotée d’un système de couches

Pour connaître en détails les caractéristiques et contraintes d’une API Rest, rendez-vous sur le site restapitutorial.com.


RStudio et Quandl

main-page-dataset-quandl

Exemple de présentation d’un dataframe sur Quandl

Nous apprendrons dans ce billet, non pas à construire notre propre API (un très bon didacticiel existe sur ce sujet ici), mais  à utiliser une API déjà existante, bien connue de tous les « fans » de data : l’API de Quandl.

Quandl est un portail de données vous donnant accès gratuitement à plus de 5 millions de datasets de données financières, économiques ou sociales. L’intérêt d’utiliser Quandl est qu’il propose aussi à ses utilisateurs une API  pour nourrir leur analyse de données et reporting. Simple d’utilisation, les APIs vous permettent d’automatiser le flux entrant de données de vos analyses pour que vos données financières soient automatiquement mises à jour dans votre logiciel de manipulation de données (au hasard RStudio ^^).

Créer un compte Quandl

Première étape, créez votre compte sur www.quandl.com. Vous pouvez utiliser Quandl et son API sans vous inscrire, mais vous serez limité à 50  requêtes  par jours.  Après avoir crée votre compte, vous pourrez requêter jusqu’à 500 flux par jours ! Conservez bien votre API Key pour ce qui suit.

api-key

Exemple d’API Key

 

Installer le package Quandl dans RStudio

#Installez le package Quandl en tapant la commande ci-dessous dans votre
 console RStudio:

 install.packages("Quandl")
 library(Quandl)

#Authentifiez-vous grâce à votre API Key pour passer à 500 liens par jours
 une fois pour toute (seulement si vous utilisez RStudio / Excel ou Python)

 Quandl.api_key("votre numéro de clef API")

Accèder aux données

Télécharger un dataset depuis votre navigateur

Voici un exemple de requête API vers le serveur de Quandl. En copiant cette adresse dans la barre de notre navigateur, vous pouvez télécharger ce fichier en format .csv.

https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv

Si vous n’avez pas encore enregistré votre API Key dans RStudio, placez celle-ci à la fin de l’adresse comme suit :

https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv?api_key=YOURAPIKEYHERE

Formats de données

Quandl vous propose trois types de formats. Pour choisir celui-ci, modifiez l’extension à la fin de l’URL.

Rechercher un dataset Quandl depuis RStudio

L’objectif final étant d’avoir le moins de manipulation à faire en dehors de votre IDE (ici RStudio), vous pouvez très bien effectuer une recherche précise de datasets directement depuis votre console R. Pour cela utilisez la fonction Quandl.search() avec les paramètres voulus.

Quandl.search(query = "Le mot que vous cherchez", page = int,
source = "nom de la source",  silent = TRUE|FALSE)
  • Query est le seul argument obligatoire de votre fonction. Il représente le terme que vous  cherchez.
  • Page est le nombre de page de résultat que vous souhaitez afficher.
  • Source vous permet, lui, de spécifier la source de votre recherche.
  • Le dernier paramètre est silent
    avec deux arguments,TRUE ou FALSE
    (pour voir ou non les trois premiers résultats de la recherche).
#Regardez les trois premiers résultats pour la recherche sur le mot "Bitcoin":
results <- Quandl.search(query = "Bitcoin", page = int, silent = FALSE)

# Affichez vos résultats : 
str(results)

# Copier le Quandl Code du dataset qui vous intéresse et placez-le dans
une variable pour le manipuler : 
BitCoin <- Quandl("BCHAIN/TOTBC")

Appeler un dataset dans RStudio

Chaque dataset est identifié par un numéro (id), appelé Quandl Code. Pour appeler directement ce dataset, tapez la fonction Quandl() suivi de l’identifiant de votre dataset.

quandl-code

# Assigner le dataset Facebook à une variable :
 data <- Quandl("WIKI/FB"

Vous pouvez maintenant travailler sur ce tableau de données comme avec n’importe quel autre. Tapez str(data) pour regarder la structure du tableau
rstudio-str

Nous allons voir maintenant comment personnaliser vos requêtes en changeant les  paramètres de la fonction Quandl().

Sélectionner une période sur une série temporelle

La fonction Quandl() peut prendre deux arguments :

start_date=yyyy-mm-dd
 et/ou 
end_date=yyyy-mm-dd
 #On décide de prendre les observations de janvier 2015 à mars 2016 :

data2 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff") 

 #On change l'ordre chronologique pour la présentation des observations
avec le paramètre order=asc (ascending).  

data3 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc")
 

Choisir les variables

Vous pouvez soit afficher les n premières variables avec limit= »n », ou choisir précisément vos variables avec column_index= »n ».

#Je décide d'afficher la colonne "Volume" (numéro 5) avec le paramètre
colum_index :

 data4 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc", column_index="5") 

 data5 <- Quandl("WIKI/FB", start_date="2015-01-26", end_date="2016-03-31",
collapse="monthly", transform="rdiff", order="asc", limit="5")  

#limit=n , n étant le nombre de colonnes souhaitées. Utilisez limit=1 pour voir
toutes les colonnes

 

Les formats de données data

Par défaut, Quandl fourni les données sous la forme d’un dataframe (type raw). Il est parfois nécessaire de changer le format des données pour pouvoir utiliser certains packages ou effectuer certaines manipulations. Les autres formats disponible sont : le format -xts ( pour Extensible Time Series), -ts (pour Time Series), et -zoo (Zoo Format). Pour changer la nature de votre dataframe, tapez la fonction Quandl() suivi du type de format souhaité comme argument :

Créer votre diagramme à points

Maintenant que vous avez récupérez les données qui vous intéressent, essayez la fonction plot(x,y) pour mettre en image vos variables!

plot


Bravo ! Vous savez maintenant comment récupérer facilement et de manière illimitée les données économiques de Quandl directement depuis l’interface de RStudio. A vous les times-series et les données du CAC-40! A très vite sur notre blog !

Eva LAUDE, laboratoire BlueDsX

elqude

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s