Dans cet article, je vous présente une comparaison des outils de manipulation de données en R et Python. Nous aborderons les environnements de travail, l’installation des packages, et proposerons des exemples concrets de code accompagnés d’explications détaillées. Vous pourrez retrouver les codes dans ce répertoire GitHub.
1. Environnements de travail : différences majeures R et python
R : RStudio
RStudio est l’environnement le plus utilisé en R. Il propose une interface claire avec une console, un explorateur d’objets, un éditeur de scripts et une visualisation facilitée des données.
Python : Jupyter Notebook ou VS Code
En Python, les environnements les plus courants sont :
- Jupyter Notebook : adapté à l’exploration interactive, avec du texte explicatif et du code exécutable.
- VS Code (Visual Studio Code) : davantage orienté vers le développement logiciel ou les projets complexes.
Besoin d’aller plus loin avec R ou Python ?
Nos accompagnement python ou r
Stat4Decision propose des formations sur mesure pour maîtriser les outils commedplyr
,pandas
,ggplot2
,matplotlib
, ou encoretidymodels
etscikit-learn
.
Nos experts vous accompagnent aussi dans le déploiement de vos analyses, la mise en place de workflows reproductibles, et l’acculturation des équipes à la data science.
2. Installation des packages en R et Python
Installer dplyr
en R
Dans RStudio ou une console R, tapez :
install.packages("dplyr")
library(dplyr)
Installer pandas
en Python
Dans un terminal, utilisez :
pip install pandas
Puis dans le code :
import pandas as pd
3. Création de DataFrames simples en R et Python
En R
library(dplyr)
library(lubridate)
df <- tibble(
nom = c("Anna", "Bertrand", "Claire", "Daniel"),
age = c(28, 34, 29, 42),
ville = c("Paris", "Nice", "Lille", "Toulouse"),
naissance = ymd(c("1996-02-10", "1990-06-23", "1995-12-05", "1982-09-16"))
)
En Python
import pandas as pd
df = pd.DataFrame({
"nom": ["Anna", "Bertrand", "Claire", "Daniel"],
"age": [28, 34, 29, 42],
"ville": ["Paris", "Nice", "Lille", "Toulouse"],
"naissance": pd.to_datetime(["1996-02-10", "1990-06-23", "1995-12-05", "1982-09-16"])
})
4. Manipulations de données courantes
Sélectionner des colonnes
R utilise select()
:
df %>% select(nom, age)
Python avec pandas
:
df[["nom", "age"]]
Filtrer des lignes selon des conditions
R avec filter()
:
df %>% filter(age > 30 & ville != "Paris")
Python :
df[(df["age"] > 30) & (df["ville"] != "Paris")]
Créer ou modifier des colonnes existantes
R :
df %>% mutate(age_plus_10 = age + 10)
Python :
df["age_plus_10"] = df["age"] + 10
5. Manipulations avancées sur les dates en R et python
Extraire des éléments d’une date (année, mois, jour)
R avec lubridate
:
df %>% mutate(
annee = year(naissance),
mois = month(naissance),
jour = day(naissance)
)
Python avec pandas
:
df["annee"] = df["naissance"].dt.year
df["mois"] = df["naissance"].dt.month
df["jour"] = df["naissance"].dt.day
Calculer l’âge exact à partir d’une date
R :
df %>% mutate(age_exact = interval(naissance, today()) %/% years(1))
Python :
from datetime import date
df["age_exact"] = (date.today() - df["naissance"].dt.date).astype('<m8[Y]')
6. Manipulations avancées sur les chaînes de caractères
Changer la casse (majuscule/minuscule)
R :
df %>% mutate(
nom_majuscules = toupper(nom),
nom_minuscules = tolower(nom)
)
Python :
df["nom_majuscules"] = df["nom"].str.upper()
df["nom_minuscules"] = df["nom"].str.lower()
Compter les caractères ou extraire une sous-chaîne
R :
df %>% mutate(
longueur_nom = nchar(nom),
trois_premiers = substr(nom, 1, 3)
)
Python :
df["longueur_nom"] = df["nom"].str.len()
df["trois_premiers"] = df["nom"].str[:3]
7. Agrégation et regroupement de données
Moyenne et comptage par groupe
R :
df %>%
group_by(ville) %>%
summarise(
moyenne_age = mean(age),
nombre_personnes = n(),
.groups = "drop"
)
Python :
df.groupby("ville").agg(
moyenne_age=("age", "mean"),
nombre_personnes=("nom", "count")
).reset_index()
8. Fusionner des données
Jointure gauche (left join)
R :
regions <- tibble(ville = c("Paris", "Nice", "Lille", "Toulouse"),
region = c("Île-de-France", "PACA", "Hauts-de-France", "Occitanie"))
df %>% left_join(regions, by = "ville")
Python :
regions = pd.DataFrame({
"ville": ["Paris", "Nice", "Lille", "Toulouse"],
"region": ["Île-de-France", "PACA", "Hauts-de-France", "Occitanie"]
})
df = df.merge(regions, on="ville", how="left")
9. Différences conceptuelles à retenir
Point de comparaison | R (dplyr ) | Python (pandas ) |
---|---|---|
Environnement préféré | RStudio | Jupyter/VS Code |
Gestion dates | Package externe lubridate conseillé | Intégrée à pandas en utilisant les dépendances dateutils |
Manipulation chaînes | Fonctions de base suffisantes | Méthodes .str puissantes |
Syntaxe pipeline | %>% | Enchaînement direct |
Agrégations | Automatique avec summarise() | agg() + reset_index() souvent requis |
10. Conclusion : lequel choisir ?
- R (
dplyr
) est souvent choisi pour l’analyse statistique, l’exploration rapide et les pipelines intuitifs. - Python (
pandas
) est davantage adapté aux environnements de production, aux workflows d’ingénierie de données, et s’intègre bien avec les bibliothèques de machine learning.
En maîtrisant ces équivalences, vous pourrez aisément naviguer entre R et Python selon vos projets et les besoins de vos équipes.
Vous voulez aller plus loin et maîtriser ces langages, rien de mieux qu’une session de formation soit en inter-entreprises, soit dédiée pour votre équipe.
Partager cet article