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 :

concatenation de dataframe


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Par défaut concatenation de dataframe
    Bonjour,
    j'ai un dataframe df qui contient plusieurs colonnes et lignes. Parmi les colonnes, il y a crit1 et crit2 qui peuvent prendre plusieurs valeurs numériques puis d'autres colonnes nommées a1, a2, a3, a4, ..., a23.
    J'aimerais créer un nouveau dataframe en concaténant verticalement les colonnes a1, a2, ..., a23 avec un filtre sur crit1 et crit2 de manière à obtenir un dataframe avec une seule colonne.
    J'ai trouvé une méthode mais elle est un peu bourrin.Le but de ma question est de savoir s'il n'y a pas mieux à faire!!
    Voici la méthode bourrin:
    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
    20
    new_df=pd.concat([
    df[(df.crit1==value1) & (df.crit2==value2) ].a1,
    df[(df.crit1==value1) & (df.crit2==value2) ].a2,
    df[(df.crit1==value1) & (df.crit2==value2) ].a3,
    df[(df.crit1==value1) & (df.crit2==value2) ].a4,
    df[(df.crit1==value1) & (df.crit2==value2) ].a5,
    df[(df.crit1==value1) & (df.crit2==value2) ].a6,
    df[(df.crit1==value1) & (df.crit2==value2) ].a7,
    df[(df.crit1==value1) & (df.crit2==value2) ].a8
    df[(df.crit1==value1) & (df.crit2==value2) ].a9,
    df[(df.crit1==value1) & (df.crit2==value2) ].a10,
    df[(df.crit1==value1) & (df.crit2==value2) ].a11,
    df[(df.crit1==value1) & (df.crit2==value2) ].a12,
    df[(df.crit1==value1) & (df.crit2==value2) ].a13,
    df[(df.crit1==value1) & (df.crit2==value2) ].a14,
    df[(df.crit1==value1) & (df.crit2==value2) ].a15,
    df[(df.crit1==value1) & (df.crit2==value2) ].a16,
    df[(df.crit1==value1) & (df.crit2==value2) ].a17,
    df[(df.crit1==value1) & (df.crit2==value2) ].a18,
    df[(df.crit1==value1) & (df.crit2==value2) ].a19,axis=0)
    et une idée qui n'a pas fonctionné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_df=pd.concat(df[(df.crit1==value1) & (df.crit2==value2)].iloc[:,2:20],axis=0)
    qui renvoie cette erreur:first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

    Merci pour votre aide

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    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 : 662
    Par défaut
    Salut,

    Sans avoir testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_df = pd.concat([df[(df.crit1==value1) & (df.crit2==value2)][a%i] for i in range(1, 20, 1)], axis=0)
    Dans tous les cas je ne le ferais pas en seule ligne, car je ne vois pas l'intérêt de faire le filtrage 19 fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filtered_df = df[(df.crit1==value1) & (df.crit2==value2)]
    new_df = pd.concat([filtered_df[a%i] for i in range(1, 20, 1)], axis=0)
    J

Discussions similaires

  1. Concatener la date au du nom fichier
    Par peppena dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 12h53
  2. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  3. [VB6] Concaténation de deux controles RTF facile
    Par bbbastien dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2004, 12h58
  4. Concaténation de chaine de caractères
    Par joy dans le forum Linux
    Réponses: 5
    Dernier message: 07/07/2003, 13h03
  5. probleme de concatenation
    Par cyna dans le forum C
    Réponses: 2
    Dernier message: 23/08/2002, 10h41

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