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 :

Opérations sur dataframe


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2019
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Opérations sur dataframe
    Bonjour à tous,

    Je suis assez désespéré, j'ai besoin de votre aide avisée !


    je cherche à réaliser une opération sur colonne d'un dataframe en fonction d'une autre colonne de ce dataframe. l'opération est basique il faut multiplier par (-1).

    petit schéma:

    df:

    A B
    50 débit
    10 crédit
    30 débit

    je voudrais récupérer le dataframe en faisant un calcul de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df['A'][df[B] =="débit"] = df['A'][df[B] =="débit"] * -1
    Mais je me trouve face à une incompatibilité de type


    Merci d'avance,

    Moucaa

  2. #2
    Membre confirmé

    Inscrit en
    novembre 2008
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : novembre 2008
    Messages : 343
    Points : 563
    Points
    563
    Par défaut
    Peut-être en forçant le type ? (j'ai pas essayé mais ça devrait marcher...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df['A'][int(df[B] =="débit")] = df['A'][int(df[B] =="débit")] * -1

  3. #3
    Membre régulier
    Homme Profil pro
    Data Lover
    Inscrit en
    décembre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data Lover
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2014
    Messages : 96
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    Par rapport à cet exemple, quel est le résultat que tu veux obtenir ?
    Si c'est ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
              A	B
         0	-50	débit
         1	10	crédit
         2	-30	débit
    Donc, il suffit de modifier ton code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df['A'][df.B =="débit"] = df['A'][df.B =="débit"] * -1

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    6 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2009
    Messages : 6 387
    Points : 23 533
    Points
    23 533
    Billets dans le blog
    124
    Par défaut


    Autre possibilité :

    Code Python : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    df = pd.DataFrame({
        "A": [50, 0],
        "B": [0, 10],
        "c": [30, 0],
    },  index=['débit', 'crédit'])
     
    print(df)
     
    '''
             A   B   c
    débit   50   0  30
    crédit   0  10   0
    '''
     
    x = df.to_numpy()
     
    print(x)
     
    '''
    [[50  0 30]
     [ 0 10  0]]
    '''
     
    total = sum(x[0]) * -1.0 + sum(x[1])
     
    print(total)
     
    '''
    -70.0
    '''

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Opérations sur les matrices...
    Par aokiseiichiro dans le forum C
    Réponses: 32
    Dernier message: 28/07/2005, 18h10
  2. Opération sur de grands entiers
    Par tutu dans le forum C
    Réponses: 16
    Dernier message: 24/05/2005, 09h56
  3. opération sur fermeture de fenêtre
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/06/2004, 23h52
  4. opérations sur les bits d'un byte
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/02/2004, 21h42
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 12h45

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