Bloquée sur code python simple :)
Natha9 -
Bonjour,
Je débute sur Python et je n'arrive pas à savoir quel code écrire pour répondre à cette question :
Créer une nouvelle variable nommée duration_categ contenant 3 modalités :
- court-terme pour tous les prêts d'une durée inférieure ou égale à 10 mois ;
- moyen-terme pour tous les prêts d'une durée strictement supérieure à 10 mois et inférieure ou égale à 30 mois ;
- long-terme pour tous les prêts d'une durée strictement supérieure à 30 mois.
La dataframe se nomme df dont voici un extrait : (impossible de mettre l'extrait en image meme en tableau)
Donc il faut définir se code par rapport à la colonne 'duration' (du prêt).
Je vous remercie par avance de votre aide.
- Bloquée sur code python simple :)
- Code ascii - Guide
- Citizen code python - Accueil - Outils
- Code puk bloqué - Guide
- Iphone 14 simple - Guide
- Code activation windows 10 - Guide
2 réponses
Bonjour, je vous remercie pour votre explication qui est très claire merci beaucoup.
J'ai continué à chercher aussi et j'ai finalement réussi avec lambda :
df['duration_categ'] = df['Duration'].apply(lambda x: "Moyen-terme" if 10 < x <= 30 else ("court-terme" if x <= 10 else "long-terme"))
Je garde votre explication car vraiment limpide merci encore
Bonjour,
Tu veux créer une nouvelle colonne dans ton DataFrame df en fonction de la colonne duration.
En Python avec pandas, tu peux le faire de plusieurs façons :
Avec pd.cut (très pratique pour des intervalles numériques)
import pandas as pd df["duration_categ"] = pd.cut( df["duration"], bins=[-float("inf"), 10, 30, float("inf")], # bornes des intervalles labels=["court-terme", "moyen-terme", "long-terme"] )
Ici :
(-∞, 10] → court-terme
(10, 30] → moyen-terme
(30, ∞) → long-terme
Avec np.where (rapide et lisible si peu de conditions)
import numpy as np df["duration_categ"] = np.where(df["duration"] <= 10, "court-terme", np.where(df["duration"] <= 30, "moyen-terme", "long-terme"))
Avec une fonction et .apply (plus pédagogique au début)
def categoriser_duree(x): if x <= 10: return "court-terme" elif x <= 30: return "moyen-terme" else: return "long-terme" df["duration_categ"] = df["duration"].apply(categoriser_duree)
Si tu débutes, je te conseille la méthode 3 (avec fonction) pour bien comprendre la logique.
Ensuite tu pourras passer à la méthode 1 (avec pd.cut) qui est la plus concise et "pro".
Je t'ai écris un exemple complet avec un petit DataFrame fictif pour que tu puisses tester directement dans ton Python :
import pandas as pd # Exemple de DataFrame avec une colonne "duration" data = { "id": [1, 2, 3, 4, 5], "duration": [5, 12, 30, 45, 8] # durées en mois } df = pd.DataFrame(data) print("=== DataFrame de départ ===") print(df) # --- Méthode avec une fonction + apply (simple à comprendre) --- def categoriser_duree(x): if x <= 10: return "court-terme" elif x <= 30: return "moyen-terme" else: return "long-terme" df["duration_categ"] = df["duration"].apply(categoriser_duree) print("\n=== DataFrame avec duration_categ ===") print(df)
Résultat attendu :
=== DataFrame de départ === id duration 0 1 5 1 2 12 2 3 30 3 4 45 4 5 8 === DataFrame avec duration_categ === id duration duration_categ 0 1 5 court-terme 1 2 12 moyen-terme 2 3 30 moyen-terme 3 4 45 long-terme 4 5 8 court-terme