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 :

[Python 3.x] Pandas Dataframe selection


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    570
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 570
    Points : 97
    Points
    97
    Par défaut [Python 3.x] Pandas Dataframe selection
    Bonjour

    Petite question sur un soucis que Python/Pandas doit surement pouvoir resoudre mais étant débutante, je n'arrive pas à faire ...
    Ma dataframe 1 (df1) :
    Id Value Bool
    A B True
    A C False
    A D False
    A E True

    Ma dataframe 2 (df2) :
    Id Value Bool
    A B False
    A C False
    A D False
    A E False


    Ce que je cherche à faire :
    Si pour un Id donné (A dans notre cas), s'il y a une valeur bool à True, on garde la ligne et on supprime celle à False (cas df1)
    Si elle sont toutes à False, on les gardes toutes (cas df2)

    Il doit falloir jouer avec du duplicate et du groupby, mais je coince ...

    Merci pour votre aide

    Thais

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Citation Envoyé par thais781 Voir le message
    Si pour un Id donné (A dans notre cas), s'il y a une valeur bool à True, on garde la ligne et on supprime celle à False (cas df1)
    Salut,

    Pas sûr d'avoir saisi. Mais s'il sagit de filtrer un dataframe il suffit de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df = df1[df1['Bool'] == True]
    J

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    570
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 570
    Points : 97
    Points
    97
    Par défaut
    Merci pour ton aide.
    En fait, c'est un peu plus sioux que ca.

    Un "Id" peut avoir plusieurs valeur suivant les ligne : True ou False
    Si une des lignes a un Bool a True on ne gardera que cette ligne pour cet Id et on supprimera toutes les autres lignes de l'Id qui sont à False
    Mais s'il n'y a pas de True associé à cet Id, alors on garde toutes les lignes

    Thais

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    570
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 570
    Points : 97
    Points
    97
    Par défaut
    Pour le moment, j'ai un bout de solution, mais c'est pas très beau ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    grouped = df.groupby(['ID'])
     
    df_end = pd.DataFrame(columns=['ID','VALUE','FILTRE'])
    for name,group in grouped:
        df_tmp = group[group['FILTRE'] == True]
        if (len(df_tmp.index)) == 0:
            df_tmp = group
        df_end = pd.concat([df_end,df_tmp])
     
    print(df_end)
    Si vous avez mieux, je suis preneuse ;-)

    Thais

Discussions similaires

  1. Import .txt vers Panda Dataframe, problème header
    Par pwetzou dans le forum Général Python
    Réponses: 12
    Dernier message: 03/02/2017, 09h37
  2. [Python 2.X] Manipulation DataFrame python
    Par gerday.m dans le forum Général Python
    Réponses: 2
    Dernier message: 18/08/2015, 12h12
  3. bouton select all avec python wx
    Par babi307 dans le forum Général Python
    Réponses: 5
    Dernier message: 18/04/2013, 13h32
  4. Réponses: 0
    Dernier message: 14/10/2010, 14h47
  5. Réponses: 4
    Dernier message: 25/10/2007, 14h01

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