🐍 Module 10 — Environnements R & Python
Acte IV — R & Python pour l'analyse de données
Niveau : Débutant · Durée estimée : 2h30
🎯 Objectifs du module
À la fin de ce module, tu sauras :
- Comprendre pourquoi R et Python sont les outils incontournables du Data Analyst
- Installer et configurer Python (via Anaconda) et R (via RStudio)
- Naviguer dans Jupyter Notebook et RStudio
- Écrire tes premiers scripts dans les deux langages
- Choisir le bon outil selon la situation
🌍 Mise en contexte — Abidjan, cabinet Bamba & Associés
Après avoir maîtrisé Excel et SQL, Kouassi Ama — notre analyste junior — reçoit une nouvelle mission :
"Ama, nos clients veulent des analyses plus poussées : tendances, prévisions, visualisations avancées. Excel ne suffit plus. Il te faut apprendre Python ou R." — M. Bamba, Directeur
Ama se pose la même question que toi : par où commencer ?
1. Pourquoi R et Python ?
1.1 Le problème des limites d'Excel
Excel est excellent pour :
- Les fichiers jusqu'à ~100 000 lignes
- Les tableaux croisés dynamiques
- Les graphiques rapides
Mais Excel montre ses limites quand :
| Situation | Limite d'Excel | Solution |
|---|---|---|
| Fichier de 500 000 lignes | Lent, plante | Python / R |
| Analyse répétée chaque mois | Tout refaire à la main | Script automatisé |
| Graphique personnalisé | Options limitées | matplotlib, ggplot2 |
| Modèle de prévision | Formules complexes | scikit-learn, tidymodels |
| Partage du travail | Fichier .xlsx fragile | Notebook partagé |
1.2 Python vs R — Le match
| Critère | Python 🐍 | R 📈 |
|---|---|---|
| Usage principal | Polyvalent (web, data, IA) | Statistiques & visualisation |
| Courbe d'apprentissage | Douce | Modérée |
| Bibliothèques data | pandas, numpy, seaborn | dplyr, ggplot2, tidyr |
| Visualisation | matplotlib, seaborn, plotly | ggplot2 (très puissant) |
| Machine Learning | scikit-learn (leader) | tidymodels, caret |
| Demande emploi Côte d'Ivoire | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Communauté francophone | Grande | Présente (académique) |
1.3 La bonne nouvelle
Tu n'as pas à choisir. Un bon Data Analyst connaît les deux.
Dans ce bootcamp : on apprend les deux en parallèle, côte à côte.
2. Installer Python avec Anaconda
2.1 Pourquoi Anaconda ?
Anaconda est une distribution Python qui installe d'un coup :
- Python
- Jupyter Notebook
- Les bibliothèques data essentielles (pandas, numpy, matplotlib...)
- Un gestionnaire d'environnements (conda)
👉 Beaucoup plus simple que d'installer Python seul puis les bibliothèques une par une.
2.2 Installation pas à pas
Étape 1 — Télécharger Anaconda
Site : anaconda.com/download
Choisir : version Individual Edition (gratuite)
OS : Windows / macOS / LinuxÉtape 2 — Installer
Windows : double-cliquer sur le .exe → suivre l'assistant
macOS : double-cliquer sur le .pkg → suivre l'assistant
Linux : bash ~/Downloads/Anaconda3-*.sh⚠️ Important (Windows) : cocher "Add Anaconda to PATH" pendant l'installation.
Étape 3 — Vérifier l'installation
Ouvrir un terminal (ou Anaconda Prompt sur Windows) et taper :
bashpython --version
# Résultat attendu : Python 3.11.x
conda --version
# Résultat attendu : conda 23.x.x2.3 Lancer Jupyter Notebook
bashjupyter notebookCela ouvre automatiquement ton navigateur à l'adresse http://localhost:8888.
Interface Jupyter :
┌─────────────────────────────────────────┐
│ 📁 Files 🔄 Running ⚙️ Clusters │ ← Onglets
├─────────────────────────────────────────┤
│ 📁 Documents/ │
│ 📁 Downloads/ │
│ 📄 analyse_rh.ipynb │ ← Notebooks
│ [New ▼] │ ← Créer un notebook
└─────────────────────────────────────────┘3. Installer R et RStudio
3.1 Deux installations distinctes
Contrairement à Python/Anaconda, R s'installe en deux étapes :
- R — le langage (moteur)
- RStudio — l'environnement de travail (interface)
Analogie : R = le moteur d'une voiture, RStudio = le tableau de bord.
3.2 Installation de R
Site : cran.r-project.org
Cliquer : "Download R for [votre OS]"
Choisir : la version la plus récente (ex: R 4.4.x)3.3 Installation de RStudio
Site : posit.co/download/rstudio-desktop
Choisir : RStudio Desktop — Open Source (gratuit)3.4 Interface RStudio — Les 4 panneaux
┌──────────────────────┬──────────────────────┐
│ 📝 Script / Source │ 🌍 Environment │
│ (écrire le code) │ (variables créées) │
├──────────────────────┼──────────────────────┤
│ > Console │ 📊 Plots / Files │
│ (exécuter, tester) │ (graphiques, aide) │
└──────────────────────┴──────────────────────┘| Panneau | Rôle |
|---|---|
| Source | Écrire et sauvegarder ton script |
| Console | Tester du code ligne par ligne |
| Environment | Voir les variables et données chargées |
| Plots/Files | Visualiser les graphiques, naviguer les fichiers |
3.5 Vérifier l'installation
Dans la Console RStudio, taper :
rR.version.string
# [1] "R version 4.4.x (2024-...)"4. Maîtriser Jupyter Notebook
4.1 Les deux types de cellules
| Type | Usage | Raccourci |
|---|---|---|
| Code | Écrire du Python exécutable | Y (en mode commande) |
| Markdown | Écrire du texte formaté | M (en mode commande) |
4.2 Raccourcis essentiels
Mode commande (appuyer Esc d'abord) :
| Raccourci | Action |
|---|---|
A |
Insérer une cellule au-dessus |
B |
Insérer une cellule en-dessous |
D D |
Supprimer la cellule |
M |
Convertir en Markdown |
Y |
Convertir en Code |
Shift+Enter |
Exécuter et passer à la suivante |
Ctrl+Enter |
Exécuter et rester sur la cellule |
4.3 Structure d'un notebook bien organisé
📓 mon_analyse.ipynb
│
├── [Markdown] # Titre de l'analyse
├── [Markdown] ## 1. Contexte
├── [Code] import pandas as pd
├── [Code] df = pd.read_csv("data.csv")
├── [Markdown] ## 2. Nettoyage
├── [Code] df.dropna()
├── [Markdown] ## 3. Analyse
└── [Code] df.describe()💡 Bonne pratique : alterner cellules Markdown (explication) et Code (calcul). Ton notebook devient ainsi un rapport vivant lisible par n'importe qui.
5. Premiers pas en Python
5.1 Variables et types de base
python# Texte (string)
nom = "Kouassi Ama"
ville = "Abidjan"
# Nombre entier (int)
age = 28
nb_employes = 35
# Nombre décimal (float)
salaire = 450000.0
# Booléen (bool)
est_cadre = True
# Afficher
print(f"Bonjour, je suis {nom}, j'ai {age} ans")
# → Bonjour, je suis Kouassi Ama, j'ai 28 ans5.2 Listes et dictionnaires
python# Liste — une collection ordonnée
departements = ["RH", "Finance", "Commercial", "IT"]
salaires = [350000, 450000, 380000, 520000]
print(departements[0]) # RH (index commence à 0)
print(len(departements)) # 4
# Dictionnaire — clé: valeur
employe = {
"nom": "Kouamé Jean",
"departement": "Finance",
"salaire": 480000,
"contrat": "CDI"
}
print(employe["nom"]) # Kouamé Jean
print(employe["salaire"]) # 4800005.3 Boucles et conditions
python# Condition
salaire = 450000
if salaire >= 500000:
print("Cadre supérieur")
elif salaire >= 350000:
print("Cadre intermédiaire")
else:
print("Agent de maîtrise")
# → Cadre intermédiaire
# Boucle for
equipe = ["Ama", "Jean", "Fatou", "Mamadou"]
for membre in equipe:
print(f"Bonjour {membre} !")
# → Bonjour Ama !
# → Bonjour Jean !
# → ...5.4 Fonctions
python# Définir une fonction
def calculer_prime(salaire, taux=0.10):
"""Calcule la prime annuelle."""
return salaire * taux * 12
# Appeler la fonction
prime_ama = calculer_prime(450000)
print(f"Prime annuelle : {prime_ama:,.0f} FCFA")
# → Prime annuelle : 540,000 FCFA
prime_jean = calculer_prime(480000, taux=0.15)
print(f"Prime Jean : {prime_jean:,.0f} FCFA")
# → Prime Jean : 864,000 FCFA6. Premiers pas en R
6.1 Variables et types de base
r# En R, on utilise <- pour assigner (ou = fonctionne aussi)
nom <- "Kouassi Ama"
age <- 28
salaire <- 450000.0
est_cadre <- TRUE
# Afficher
cat("Bonjour", nom, "\n")
# → Bonjour Kouassi Ama
print(paste("Salaire :", salaire, "FCFA"))
# → [1] "Salaire : 450000 FCFA"6.2 Vecteurs (l'équivalent des listes Python)
r# Vecteur — collection d'éléments du MÊME type
departements <- c("RH", "Finance", "Commercial", "IT")
salaires <- c(350000, 450000, 380000, 520000)
# Accès (index commence à 1 en R, pas 0 !)
departements[1] # "RH"
salaires[3] # 380000
# Calculs vectoriels automatiques
salaires * 1.10 # augmentation de 10% pour tous
# → 385000 495000 418000 572000
mean(salaires) # moyenne : 425000
sum(salaires) # total : 1700000⚠️ Piège classique : en R, les index commencent à 1 (pas 0 comme en Python).
6.3 Conditions et boucles
r# Condition
salaire <- 450000
if (salaire >= 500000) {
print("Cadre supérieur")
} else if (salaire >= 350000) {
print("Cadre intermédiaire")
} else {
print("Agent de maîtrise")
}
# → [1] "Cadre intermédiaire"
# Boucle for
equipe <- c("Ama", "Jean", "Fatou", "Mamadou")
for (membre in equipe) {
cat("Bonjour", membre, "!\n")
}
# → Bonjour Ama !
# → Bonjour Jean !6.4 Fonctions
r# Définir une fonction
calculer_prime <- function(salaire, taux = 0.10) {
return(salaire * taux * 12)
}
# Appeler
prime_ama <- calculer_prime(450000)
cat("Prime annuelle :", format(prime_ama, big.mark=","), "FCFA\n")
# → Prime annuelle : 540,000 FCFA7. Python vs R — Comparaison côte à côte
Même tâche, deux langages — voici comment se traduit chaque concept :
| Concept | Python | R |
|---|---|---|
| Assigner une variable | x = 10 |
x <- 10 |
| Commentaire | # commentaire |
# commentaire |
| Afficher | print(x) |
print(x) ou cat(x) |
| Liste / Vecteur | [1, 2, 3] |
c(1, 2, 3) |
| Index du 1er élément | liste[0] |
vecteur[1] |
| Longueur | len(liste) |
length(vecteur) |
| Moyenne | sum(liste)/len(liste) |
mean(vecteur) |
| Condition | if x > 0: |
if (x > 0) { |
| Boucle | for i in liste: |
for (i in vecteur) { |
| Fonction | def ma_fn(x): |
ma_fn <- function(x) { |
| Importer | import pandas as pd |
library(dplyr) |
🔗 Pont Excel → Python/R
Tu connais déjà Excel et SQL. Voici comment tes acquis se traduisent :
| Ce que tu fais dans Excel | En Python | En R |
|---|---|---|
| Ouvrir un fichier .xlsx | pd.read_excel("data.xlsx") |
read_excel("data.xlsx") |
| Ouvrir un CSV | pd.read_csv("data.csv") |
read.csv("data.csv") |
| Voir les données | df.head() |
head(df) |
| Résumé statistique | df.describe() |
summary(df) |
| Filtrer des lignes | df[df["col"] > 100] |
filter(df, col > 100) |
| Calculer une moyenne | df["col"].mean() |
mean(df$col) |
| Créer un graphique | df.plot() |
plot(df$col) |
| Ce que tu fais en SQL | En Python (pandas) | En R (dplyr) |
|---|---|---|
SELECT col FROM table |
df[["col"]] |
select(df, col) |
WHERE col > 100 |
df[df["col"] > 100] |
filter(df, col > 100) |
ORDER BY col |
df.sort_values("col") |
arrange(df, col) |
GROUP BY + COUNT |
df.groupby("col").size() |
count(df, col) |
GROUP BY + SUM |
df.groupby("col")["val"].sum() |
summarise(group_by(df, col), s=sum(val)) |
✏️ Mini-exercices
Exercice 1 — Python : profil employé
En Python, crée les variables suivantes pour un employé de Bamba & Associés :
nom= "Traoré Seydou"departement= "Commercial"salaire= 420000annees_experience= 5
Puis affiche : "Traoré Seydou (Commercial) — 420,000 FCFA — 5 ans d'expérience"
👉 Voir la réponse......
pythonnom = "Traoré Seydou"
departement = "Commercial"
salaire = 420000
annees_experience = 5
print(f"{nom} ({departement}) — {salaire:,} FCFA — {annees_experience} ans d'expérience")
# → Traoré Seydou (Commercial) — 420,000 FCFA — 5 ans d'expérienceExercice 2 — R : analyse des salaires
En R, crée un vecteur salaires contenant : 350000, 420000, 480000, 390000, 550000
Calcule et affiche : la moyenne, le minimum et le maximum.
👉 Voir la réponse......
rsalaires <- c(350000, 420000, 480000, 390000, 550000)
cat("Moyenne :", mean(salaires), "FCFA\n")
# → Moyenne : 438000 FCFA
cat("Minimum :", min(salaires), "FCFA\n")
# → Minimum : 350000 FCFA
cat("Maximum :", max(salaires), "FCFA\n")
# → Maximum : 550000 FCFAExercice 3 — Python : classification des salaires
Pour chaque salaire de la liste [280000, 350000, 450000, 520000, 680000],
affiche la catégorie :
- < 300 000 → "Bas"
- 300 000 – 499 999 → "Moyen"
- ≥ 500 000 → "Élevé"
👉 Voir la réponse......
pythonsalaires = [280000, 350000, 450000, 520000, 680000]
for s in salaires:
if s < 300000:
categorie = "Bas"
elif s < 500000:
categorie = "Moyen"
else:
categorie = "Élevé"
print(f"{s:,} FCFA → {categorie}")
# → 280,000 FCFA → Bas
# → 350,000 FCFA → Moyen
# → 450,000 FCFA → Moyen
# → 520,000 FCFA → Élevé
# → 680,000 FCFA → Élevé📋 Cheat Sheet — Python vs R
Syntaxe de base
| Action | Python | R |
|---|---|---|
| Variable | x = 5 |
x <- 5 |
| String | "texte" |
"texte" |
| Liste/Vecteur | [1, 2, 3] |
c(1, 2, 3) |
| Booléen | True / False |
TRUE / FALSE |
| Commentaire | # ... |
# ... |
| Afficher | print(x) |
print(x) |
| Longueur | len(x) |
length(x) |
Environnements
| Outil | Usage |
|---|---|
| Anaconda | Distribution Python tout-en-un |
| Jupyter Notebook | IDE Python orienté analyse/rapport |
| RStudio | IDE R avec 4 panneaux |
| Google Colab | Jupyter gratuit en ligne (pas d'installation) |
Raccourcis Jupyter
| Raccourci | Action |
|---|---|
Shift+Enter |
Exécuter la cellule |
A |
Cellule au-dessus |
B |
Cellule en-dessous |
D D |
Supprimer la cellule |
M |
Mode Markdown |
Y |
Mode Code |
📥 Cheat Sheets à télécharger
| Langage | Ressource | Lien |
|---|---|---|
| Python | Real Python Cheat Sheet | 📄 Télécharger PDF |
| R | Base R Cheat Sheet (Harvard IQSS) | 📄 Télécharger PDF |
💡 Imprime-les ou garde-les ouverts dans un onglet pendant que tu codes — tu t'y référeras constamment au début.
🧠 Quiz de validation
Question 1 — En R, comment accède-t-on au premier élément du vecteur v <- c(10, 20, 30) ?
a) v[0]
b) v[1]
c) v.first()
d) first(v)
👉 Voir la réponse......
Réponse : b) v[1]
En R, les index commencent à 1 (contrairement à Python où ils commencent à 0). v[1] retourne 10.
Question 2 — Quelle commande Python affiche les 5 premières lignes d'un DataFrame df ?
a) df.top(5)
b) df.first(5)
c) df.head()
d) head(df, 5)
👉 Voir la réponse......
Réponse : c) df.head()
En Python/pandas, df.head() affiche les 5 premières lignes par défaut. En R, l'équivalent est head(df) — même nom, syntaxe différente.
Question 3 — Quelle est la différence entre R et RStudio ?
a) RStudio est une version payante de R
b) R est le langage (moteur), RStudio est l'interface de travail
c) Ce sont deux langages différents
d) RStudio remplace R, on n'a besoin que de RStudio
👉 Voir la réponse......
Réponse : b)
R est le langage (moteur de calcul). RStudio est l'environnement de développement (IDE) qui rend R plus agréable à utiliser. Les deux sont gratuits et open source. Il faut installer R EN PREMIER, puis RStudio.
✅ Résumé du module
| Ce que tu as appris | Détail |
|---|---|
| Pourquoi Python & R | Limites d'Excel, complémentarité des deux outils |
| Installer Python | Anaconda → Jupyter Notebook |
| Installer R | CRAN → RStudio (4 panneaux) |
| Jupyter Notebook | Cellules Code/Markdown, raccourcis clavier |
| Bases Python | Variables, listes, dicts, boucles, fonctions |
| Bases R | Variables, vecteurs, boucles, fonctions |
| Pont Excel→Python/R | Traduction des actions Excel courantes |
| Pont SQL→Python/R | SELECT, WHERE, GROUP BY en pandas et dplyr |
🚀 Dans le module suivant
Module 11 — Statistiques descriptives avec R & Python
On charge de vraies données ivoiriennes, on calcule les indicateurs clés (moyenne, médiane, écart-type, quartiles) et on commence à explorer avec pandas et dplyr.
Bootcamp Data Analyst — From Zero to Hero | Niveau Débutant · Acte IV