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 :

Concaténation de 2 colonnes d'un data frame


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2023
    Messages : 3
    Par défaut Concaténation de 2 colonnes d'un data frame
    Bonjour,

    Débutant sur Python, je galère un peu...

    J'ai un data frame avec plusieurs colonnes, j'ai deux colonnes qui m'interessent avec du texte

    Par exemple :

    colonne 1 : bonjour
    NaN
    trois

    colonne 2 : akjdknr
    rogreog
    NaN

    Je veux fusionner le texte de ces 2 colonnes dans une nouvelle colonne donc je les ai concaténé avec le code suivant :
    df["colonne 3"] = pandas.concat([df["colonne 1"], df["colonne 2"]],ignore_index=True)

    Cela m'a bien donné une nouvelle colonne mais je suis embetee avec les NaN car par exemple pour la 2ème ligne, ça ne me ressort rien alors que j'aimerais bien avoir le "rogreog". Comment pourrais-je concatener tout en prenant en compte les cases "NaN" ?

    Merci beaucoup

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par chloe33000 Voir le message
    Comment pourrais-je concatener tout en prenant en compte les cases "NaN" ?
    Comparez la sortie de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zz = pandas.concat([df["colonne 1"], df["colonne 2"]],ignore_index=True)
    print(zz)
    avec celle de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    df["colonne 3"] = pandas.concat([df["colonne 1"], df["colonne 2"]],ignore_index=True)
    print(df)
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2023
    Messages : 3
    Par défaut
    Bonjour,

    Merci pour la réponse mais j'ai essayé et cela fait pareil qu'avec le code précédent concernant les données manquantes...

    Bonne journée

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par chloe33000 Voir le message
    Merci pour la réponse mais j'ai essayé et cela fait pareil qu'avec le code précédent concernant les données manquantes...
    ça ne devrait pas faire "pareil": montrez ce que vous avez fait.

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

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2023
    Messages : 3
    Par défaut
    J'ai réussi en convertissant les données manquantes avec ce code et celui que vous m'aviez proposé :

    df['colonne 1'] = df['colonne 1'].fillna("")
    df['colonne 2'] = df['colonne 2'].fillna("")

    Merci beaucoup

  6. #6
    Membre actif
    Homme Profil pro
    Animateur Numérique
    Inscrit en
    Février 2013
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Animateur Numérique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2013
    Messages : 143
    Par défaut
    Salut,

    Juste pour le fun et parce que tous les médias en parlent, j'ai posé la question à chatGPT :

    Question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    programme python concaténation de 2 colonnes d'un data frame pandas en supprimant les NaN
    Réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Vous pouvez utiliser la méthode 'fillna' de pandas pour remplacer les valeurs NaN par une chaîne vide, puis utiliser la méthode 'str.cat' pour concaténer les colonnes en une seule colonne. Voici un exemple :
    Code:
    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
    import numpy as np
     
    # Création d'un data frame avec des valeurs NaN
    df = pd.DataFrame({'col1': ['A', 'B', np.nan, 'D', 'E'],
            'col2': [1, 2, 3, np.nan, 5]})
     
    # Remplacement des NaN par une chaîne vide
    df['col1'] = df['col1'].fillna('')
    df['col2'] = df['col2'].fillna('').astype(str)
     
    # Concaténation des colonnes
    df['col3'] = df['col1'].str.cat(df['col2'], sep=' ')
     
    # Affichage du résultat
    print(df)
    Quand même....Alors il a volontairement intégré des chiffres dans la colonne 2 mais si on n'avait que des strings on aurait pu faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import pandas as pd
    import numpy as np
     
    # Création d'un data frame avec des valeurs NaN
    df = pd.DataFrame({'col1': ['A', 'B', np.nan, 'D', 'E'],
            'col2': ['1', '2', '3', np.nan, '5']})
     
    # Concaténation des colonnes et remplacement des NaN par une chaîne vide
    df['col3'] = df['col1'].str.cat(df['col2'], na_rep='')
     
    # Affichage du résultat
    print(df)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2011, 14h27
  2. Rajout d'une colonne dans une data frame
    Par kalapiso dans le forum R
    Réponses: 2
    Dernier message: 23/10/2011, 14h43
  3. Suppression de colonnes dans un data.frame
    Par ricoben dans le forum R
    Réponses: 1
    Dernier message: 13/04/2010, 17h13
  4. Mean par colonne dans une data frame
    Par manoir dans le forum R
    Réponses: 3
    Dernier message: 19/06/2009, 11h06
  5. Réponses: 2
    Dernier message: 14/11/2008, 14h53

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