IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Fonctions If colonne similaires [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Débutant Data Analyst
    Inscrit en
    Décembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Débutant Data Analyst

    Informations forums :
    Inscription : Décembre 2019
    Messages : 13
    Par défaut Fonctions If colonne similaires
    Bonjour à tous,

    J'ai deux colonnes a et b ayant des informations communes. Parfois une des colonnes possède l'information, parfois c'est l'autre, parfois aucune des deux n'a l'information, parfois les deux ont l'information et le dernier cas parfois les deux ont une information mais pas la même.
    Je souhaite donc les rassembler en une nouvelle colonne.
    Sachant qu'il y a des integers et des strings dans mes colonnes

    avec cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    def concat(df):
        if df['a'] != 0 and df['b'] == 0:
            value = df['a']
        elif df['a'] == 0 and df['b'] != 0:
            value = df['b']
        elif df['a'] == df['b']:
            value = df['b']
        elif df['a'] == 0 and df['b'] == 0:
            value = 'Non renseigné'
        else :
            value = 'problème'
        return value
     
    df['c']=df.apply(concat,axis=1)

    Mon problème survient à ce moment : En résultat je n'ai que ( elif df['a'] == df['b']:
    value = df['b']
    ET
    else :
    value = 'problème' ) qui fonctionnent

    Mais 3 de mes if ne fonctionnent pas.
    Python ne retourne aucune erreur mais le résultat n'est pas celui que j'aimerais avoir ahah
    Je ne sais pas si je suis très clair mais l'erreur doit être facile à trouver

    Merci beaucoup

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par antoya Voir le message
    Mon problème survient à ce moment : En résultat je n'ai que ( elif df['a'] == df['b']:
    value = df['b']
    ET
    else :
    value = 'problème' ) qui fonctionnent

    Mais 3 de mes if ne fonctionnent pas.
    Ben sais pas. Moi j'ai récupéré ton code

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def concat(df):
        if df['a'] != 0 and df['b'] == 0:
            value = df['a']
        elif df['a'] == 0 and df['b'] != 0:
            value = df['b']
        elif df['a'] == df['b']:
            value = df['b']
        elif df['a'] == 0 and df['b'] == 0:
            value = 'Non renseigné'
        else :
            value = 'problème'
        return value

    Puis j'y ai rajouté
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    df={
    	"a" : 6,
    	"b" : 7,
    }
     
    print(concat(df))
    Et je peux jouer tant que je veux avec mes "a" et mes "b", j'ai bien le bon résultat. Les "if" fonctionnent (avec un petit bémol toutefois concernant elif df['a'] == 0 and df['b'] == 0 qui passe après elif df['a'] == df['b']) ahah


    Citation Envoyé par antoya Voir le message
    mais l'erreur doit être facile à trouver
    Ben non. Ou plutôt si, mais elle ne se trouve pas dans le code. Et comme elle n'est pas non plus dans l'ordi... ahah

    Accessoirement tu as une fonction qui a pour but de récupérer un integer ou une string (selon le contenu de la colonne ciblée) et qui peut retourner éventuellement "problème" si problème. Perso je me demande comment tu feras la part des choses entre la string "problème" éventuellement trouvée dans une des colonnes, et la string "problème" indiquant qu'il y a un problème... ahah
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Homme Profil pro
    Débutant Data Analyst
    Inscrit en
    Décembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Débutant Data Analyst

    Informations forums :
    Inscription : Décembre 2019
    Messages : 13
    Par défaut
    Merci tu m'as ouvert les yeux ahah !

    En voyant ton message j'ai réessayer le code de mon côté et effectivement il fonctionnait bien donc je me suis dis que cela devait venir de la base et enfait j'avais oublié le (inplace = True) du coup cela prenait ma base avant mon fillna(0) d'où le 'problème'.

    Merci en tout cas pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Selectionner une cellule vide en fonction des colonnes et lignes remplies
    Par h12enri dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/03/2013, 13h00
  2. [XL-2007] creer commentaire en fonction critere colonne A
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/02/2011, 17h37
  3. Fonction tri colonne
    Par almoha dans le forum Langage
    Réponses: 8
    Dernier message: 31/01/2010, 17h21
  4. fonction cacher colonne tableau
    Par isa150183 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/07/2008, 09h47
  5. fonction DSUM ou similaire
    Par lbar012001 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/08/2007, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo