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 :

Créer un condition avec pandas.isnull


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2022
    Messages : 1
    Par défaut Créer un condition avec pandas.isnull
    Bonjour,

    j'aimerais créer une condition sur une colonne avec la fonction .isnull.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import pandas as pd
     
    # Import the excel file
    fichier = pd.ExcelFile("C:/Users/.../Suivi_Loup.xlsx")
     
    # Load the "PV" sheet as a dataframe
    df = fichier.parse("PV")
     
    if df['Abrev alpage'].isnull:
        df['Code Piège'] = df['localisation']
    else:
        df['Code Piège'] = df['Abrev alpage'] + " - " + df['localisation']
    print(df)

    J'ai donc une colonne "Abrev alpage" qui contient du texte ou NaN.
    J'aimerai créer une colonne "Code piège" en utilisant une condition sur la colonne "Abrev alpage" et obtenir ce résultat

    Alpage Abrev alpage N localisation Code Piège
    0 Bassine B 1.0 combe corbeau ouest B - combe corbeau ouest
    1 Bassine B 2.0 grison B- grison
    2 Bassine B 3.0 combe corbeau grison B - combe corbeau grison
    3 Autre NaN 4.0 combe corbeau est combe corbeau est
    4 Autre NaN 5.0 puit puit

    Cependant mon code ne fonctionne pas, soit tout est fait selon la première option (j'ai que df['Code Piège'] = df['localisation']), soit tout est fait selon la deuxième.

    Est-il possible d'utiliser une condition avec .isnull ?

    Merci pour votre précieuse aide !

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par JackJackJack Voir le message
    Est-il possible d'utiliser une condition avec .isnull ?
    Bien entendu. On peut utiliser une condition avec tout objet Python puisque tout objet est assimilable à un booléen.

    Mais puisque .isnull est une fonction (une méthode) il faut des parenthèses pour demander son exécution. Parce qu'en l'état, tu testes juste si l'objet fonction existe (ce qui est évidemment toujours vrai).
    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
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par JackJackJack Voir le message
    Est-il possible d'utiliser une condition avec .isnull ?
    Pas vraiment.
    Lorsque vous "testez" une idée, partez toujours d'un cas simple... et ça commence par lancer l'interpréteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> import pandas as pd
    >>> import numpy as np
    créer un dataframe avec ce qu'on souhaite regarder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> df = pd.DataFrame(dict(A=[None, 0, 1, None]))
    >>> df
         A
    0  NaN
    1  0.0
    2  1.0
    3  NaN
    puis regarder ce que sort isnull:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> df.A.isnull()
    0     True
    1    False
    2    False
    3     True
    Name: A, dtype: bool
    Et comme ce tableau de booléen ne sera vide que si le dataframe est vide, un if df.A.isnull() sera presque toujours vrai et inutilisable pour créer une colonne avec condition sauf à faire une boucle simple. Ce qui est dommage...

    Une solution pour faire ça en une ligne est de passer par np.where:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> df['B'] = np.where(df.A.isnull(), 'X', 'Y')
    >>> df
         A  B
    0  NaN  X
    1  0.0  Y
    2  1.0  Y
    3  NaN  X
    >>>
    Il y a d'autres solutions peut être plus adaptées à votre problème (mais chercher un peu sur Internet et décrire son problème en sortant le nez du guidon pour avoir un petit exemple différent du mien et plus proche de ce que vous voulez... est le minimum, là c'est moi qui bosse)

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Créer une vue avec des conditions
    Par jamdinhe dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/12/2012, 09h59
  2. Créer une boucle avec une condition
    Par kaboche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/10/2011, 09h55
  3. [XL-2003] Créer des listes avec conditions sans macro
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 26/07/2011, 15h14
  4. Créer une boucle avec condition
    Par mfontan dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/06/2008, 17h14
  5. [ASE]Créer un index avec condition
    Par lutecefalco dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 10/03/2008, 08h31

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