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

Bibliothèques tierces Python Discussion :

Effectuer une addition "par morceau" sur une DataFrame [pandas] [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Pays-Bas

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 17
    Points : 20
    Points
    20
    Par défaut Effectuer une addition "par morceau" sur une DataFrame [pandas]
    Bonjour à tous,

    J'ai besoin de votre aide pour effectuer une opération sur une DataFrame que je j'ai du mal à faire moi-même. Je m'explique: le code qui suit définit un tableau contenant des achats.

    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
    16
    17
    18
    19
     
    import pandas as pd
    import numpy as np
     
    a = "pommes"
    b = "poires"
    c = "citrons"
     
    listes = [[a,a,b,b,c,c],
               [2,1,4,3,4,6]]
     
    s = np.array(listes)
     
    df = pd.DataFrame(s)
    df = df.transpose()
     
    df.rename(columns={0:"produit",1:"nombre"}, inplace=True)
     
    print(df)
    Voici ce que cela donne:

    Nom : tabelletje.png
Affichages : 478
Taille : 2,0 Ko

    Ce que j'aimerais faire, c'est obtenir un tableau qui a les mêmes noms de colonnes, qui a une seule ligne par espèce de fruit achetée, et où la colonne "nombre" cette fois-ci montre le nombre total de pommes, de poires et de citrons achetés. Voici ce que cela devrait donner:

    Nom : tabelletje2.png
Affichages : 467
Taille : 1,4 Ko

    Encore un mot à propos de ce que j'ai essayé de faire moi-même. On pourrait bien sûr parcourir le tableau avec une boucle pour récupérer tous ce dont on a besoin pour définir le tableau que je voulais obtenir, mais d'après ce que j'ai lu l'utilisation de boucles sur une DataFrame est à proscrire.
    Je me suis aussi dit qu'il pourrait y avoir un rapport entre ce que je veux faire et la méthode des tableaux croisés dynamiques, mais je ne maîtrise pas cette notion-là.

    Je vous remercie d'avance pour votre aide.

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    un truc dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> listes = [['pommes', 'pommes', 'poires', 'poires', 'citrons', 'citrons'], [2, 1, 4, 3, 4, 6]]
    >>> df = pd.DataFrame(np.array(list(zip(*listes)), dtype=[('produit', 'O'), ('nombre', 'I')]))
    >>> df.groupby('produit', as_index=False).sum()
       produit  nombre
    0  citrons      10
    1   poires       7
    2   pommes       3

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Pays-Bas

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Merci!
    Je vais décortiquer ça. Quand j'aurai bien compris comment ça marche je fermerai la discussion.

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

Discussions similaires

  1. awk ou sed : Supprimer argument entre doubles quotes sur une ligne de fichier
    Par SuperJoker dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 18/05/2014, 21h08
  2. Réponses: 1
    Dernier message: 08/09/2009, 04h15
  3. Réponses: 9
    Dernier message: 21/11/2008, 22h59

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