R et python

R et python – Comparaison détaillée de la manipulation de données entre R (dplyr) et Python (pandas)

stat4decision Mis à jour le : 9 avril 2025 méthode, python Leave a Comment

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 ?
Stat4Decision propose des formations sur mesure pour maîtriser les outils comme dplyr, pandas, ggplot2, matplotlib, ou encore tidymodels et scikit-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.

Nos accompagnement python ou r

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 comparaisonR (dplyr)Python (pandas)
Environnement préféréRStudioJupyter/VS Code
Gestion datesPackage externe lubridate conseilléIntégrée à pandas en utilisant les dépendances dateutils
Manipulation chaînesFonctions de base suffisantesMéthodes .str puissantes
Syntaxe pipeline%>%Enchaînement direct
AgrégationsAutomatique 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.