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

Calcul scientifique Python Discussion :

pandas mise à jour


Sujet :

Calcul scientifique Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    mars 2006
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 299
    Points : 106
    Points
    106
    Par défaut pandas mise à jour
    bonjour,

    Je ne vois pas comment remplacer des valeurs d'un dataframe ,selectionné suivant une requete , par le mode de la colonne.

    J'ai une colonne sam et je selectionne certaines valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    df[(df['sam']>180) | (df['sam'] < 50)]
    et je voudrais remplacer ces valeurs par le mode de la colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    df['sam'].mode()[0])
    merci de votre aide

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    août 2010
    Messages
    633
    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 : 633
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut,

    Intuitivement je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    df[(df['sam'] > 180) | (df['sam'] < 50)] = df['sam'].mode()[0]
    EDIT
    Pour être plus précis. Lorsque vous souhaiter filtrer certaines valeurs vous faites ce que l'on appel un mask :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mask = (df['sam'] > 180) | (df['sam'] < 50)
    Si vous affichez ce mask, vous verrez votre colonne sam rempli de booléens True ou False en fonction de la valeur sous-jacente. Si vous ne voulez remplacer que les valeurs de la colonne sam, il faut faire ceci (contrairement à ce que j'ai écris précédemment) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df['sam'][mask] = df['sam'].mode()[0]
    J

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    mars 2006
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 299
    Points : 106
    Points
    106
    Par défaut
    ok, pigé :-). Merci

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  2. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 08h11
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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