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 :

Remplacer des valeurs par un 1 - Pandas


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Remplacer des valeurs par un 1 - Pandas
    Bonjour,

    J'ai un dataframe que je voudrais convertir en fichier binaire.
    Il a une colonne avec des noms que je ne veux surtout pas modifier.

    J'ai écrit ceci mais ça ne fonctionne pas (désolée je débute en python) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    list = range(1,1000)
    for n in list :
        d_binaire = d_c.replace(n, 1)
    d_binaire
    Quelqu'un a une idée du problème ? Merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Quel est le rapport entre fichier binaire et remplacer par 1 toutes les occurrences de nombres compris entre 1 et 1000?
    note: d_c.replace(n, 1) devrait fonctionner... mais si çà ne fait pas ce que vous attendez, précisez en entrée j'ai... en sortie je voudrais ... alors que j'obtiens...

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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    En fait mon dataframe est remplit de valeurs entre 0 et 1000. J'aimerais le modifier pour que si la valeur d'une case est supérieure à 1 (donc inclue dans ma liste), la valeur deviennent 1.
    Ca me permettrait d'obtenir un fichier avec uniquement des 0 et des 1.
    Ma liste ne va que jusqu'à 1000 car ma première colonne correspond à des identifiants qui sont des nombres supérieurs à 1000 et que je ne veux surtout pas modifier.

    Un exemple de ce que j'ai :
    Nom : 1Capture d’écran 2021-02-10 090214.jpg
Affichages : 628
Taille : 9,3 Ko

    Ce que je veux :
    Nom : 2Capture d’écran 2021-02-10 090348.jpg
Affichages : 618
Taille : 8,3 Ko

    Mais en sortie j'obtiens le premier dataframe, sans modifications...

    Merci à vous

  4. #4
    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,

    tout simplement.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Le problème c'est que du coup ça va modifier ma première colonne

    Et les valeurs dans mon tableau semble être considérées comme des chaines de caractères : TypeError: '>' not supported between instances of 'str' and 'int'

  6. #6
    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
    ce que tu appelles "première colonne" dans les images que tu montres plus haut ça semble être ton index, donc il n'est pas censé être modifié

    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
    import pandas as pd
    df = pd.DataFrame(
        {
            'espèce A': ['1', '707', '0'],
            'espèce B': ['15', '0', '987'],
            'espèce C': ['0', '0', '105'],
            'espèce D': ['470', '7', '15']
        }, index = ['458536', '784582', '125478']
    ).astype(
        dtype = {
            'espèce A': 'int32',
            'espèce B': 'int32',
            'espèce C': 'int32',
            'espèce D': 'int32'
        }
    )
    df.info()
    Code resultat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <class 'pandas.core.frame.DataFrame'>
    Index: 3 entries, 458536 to 125478
    Data columns (total 4 columns):
    espèce A    3 non-null int32
    espèce B    3 non-null int32
    espèce C    3 non-null int32
    espèce D    3 non-null int32
    dtypes: int32(4)
    memory usage: 72.0+ bytes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> df[df > 1] = 1
    >>> df
            espèce A  espèce B  espèce C  espèce D
    458536         1         1         0         1
    784582         1         0         0         1
    125478         0         1         1         1

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Merci à vous, mon problème est réglé !

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

Discussions similaires

  1. [XL-2013] Remplacer des valeur par rapport à un interval
    Par khaled87 dans le forum Excel
    Réponses: 6
    Dernier message: 27/12/2014, 00h07
  2. XL 2007: Remplacer des valeurs par d'autres sur une autre feuille
    Par redhotchilipeppers dans le forum Excel
    Réponses: 2
    Dernier message: 26/11/2014, 11h23
  3. [Toutes versions] Empêcher le remplacement des valeurs par ##
    Par Invité dans le forum Excel
    Réponses: 2
    Dernier message: 01/07/2013, 09h07
  4. [AC-2000] Remplacer des valeurs par des autres
    Par l'coy dans le forum Access
    Réponses: 4
    Dernier message: 29/03/2011, 19h00
  5. [AC-2002] Remplacement des valeurs par des Max(Valeurs)
    Par parab dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/03/2010, 08h45

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