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 :

[Panda] dataframe et hierarchical tree [Python 3.X]


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut [Panda] dataframe et hierarchical tree
    Bonjour à tous,

    Je rencontre un petit problème car je n'ai aucune idée de comment procéder à une tâche.

    J'ai un dataframe qui se compose de ce type de colonne :
    CodeGroupe; [200 colonnes avec un nom de 0 à 199]

    Dans ces 200 colonnes, il s'agit en fait de composants de mon groupe, certaines lignes vont avoir que 1 ou 2 colonnes de remplis, d'autres peuvent les avoir toutes. (toutes les données sont numériques)
    Par exemple, je peux avoir :

    CodeArticle;0;1;2;3
    1;200;300;400

    Le groupe fini 1 est donc composé des identifiants 200;300 et 400.

    Si j'ai, plus loin dans mon dataframe, une ligne du style :

    CodeArticle;0;1;2
    200;3999;4000

    Mon sous-groupe 200 n'est pas un groupe "final", il est lui même composé de 3999 et de 4000.
    4000 est donc un composant de 200 qui est lui même un composant de 1

    J'aimerais deux choses :
    Un arbre avec ceci :
    1
    200
    3999
    4000
    300
    400

    Mon problème ici est que je ne sais pas comment dire à mon framework de creation d'arbre (quel qu'il soit) qu'il doit gérer les 200 colonnes comme les enfants de "CodeGroupe" et que des fois, un code "enfant" peut être lui même parent.
    Je me suis dit que je pourrais peut-être concaténer mes 200 colonnes en une seule mais pour gérer les sous-sous niveaux je ne sais pas comment faire.

    J'ai tenté de voir, si je pouvais avoir une option pour générer une nouvelle colonne m'indiquant le niveau (par exemple, ma ligne 1;200;300;400 serait le niveau 1 car aucun groupe n'est composé de 1) mais je ne sais pas non plus comment faire, là, je sèche totalement sur quel style d'algo je dois mettre en place...

    J'espère avoir été clair

    Bisous bisous

  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,

    Si on prend chaque ligne du dataframe, comment la placer dans un arbre?
    Par exemple, la ligne 1;200;300;400 crée 4 nœuds où 200, 300, 400 sont "fils de" 1 (et/ou ont 1 pour parent).
    A la vue de la ligne 200;3999;4000, le nœud 200 existe déjà, on lui ajoute les fils 3999 et 4000.

    Chaque nœud a donc un parent et peut un ou plusieurs descendants.

    Après coder ça dépend de ce que vous connaissez côté Python: classes, listes, dictionnaires,...

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

  3. #3
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    Bonjour,

    Oui dans l'idée c'est ça, mes connaissances sont vastes et limitées en même temps. Je fais du dev mais python n'est clairement pas mon langage de prédilection, là je passe par jupyter notebook car il permet de traiter très rapidement des csv et de faire diverses graphs dont j'ai besoin.

    Là, dans l'idée, j'ai aussi besoin de ce graphe de hiérarchie car une fois qu'il sera ok, ça voudra aussi dire que mon dataframe/csv sera suffisament propre pour être utilisé dans de diverses cas

    Donc le dev pour y aller, à la rigueur, je peux m'en accommoder, là mon vrai problème à l'heure actuelle c'est, avec ce que j'ai, quel type de format de dataframe je dois viser

  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 JeanYvette Voir le message
    Donc le dev pour y aller, à la rigueur, je peux m'en accommoder, là mon vrai problème à l'heure actuelle c'est, avec ce que j'ai, quel type de format de dataframe je dois viser
    Personnellement, je ne vois pas trop l'intérêt d'utiliser pandas ici: lire un fichier CSV, ligne à ligne pour insérer des informations dans un arbre...

    Ceci dit, comment utiliser pandas pour représenter une structure hiérarchique se trouve sur Internet mais pas facile d'aller trier pour vous ce qui pourrait répondre à vos besoins.

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

  5. #5
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    J'utilise pandas ici simplement parce que je m'en sers pour tous les csv que j'ouvre dans le notebook car il y en a besoin, donc dans le but de rester tout le temps "pandas pour les csv", voila tout

    Après là je ne sais pas exactement où aller. Parce que si je rajoute une colonne avec la notion de "niveau", ca ne suffira pas. Est-ce qu'au lieu d'avoir un csv style :
    Code, 0, 1, 2, 3 ...

    Avoir
    Code, 0, rien ou niveau
    En ayant transformé les colonne 1 et plus en une nouvelle ligne dans la colonne 0 ?

  6. #6
    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 JeanYvette Voir le message
    Après là je ne sais pas exactement où aller. Parce que si je rajoute une colonne avec la notion de "niveau", ca ne suffira pas. Est-ce qu'au lieu d'avoir un csv style :
    Code, 0, 1, 2, 3 ...
    Les informations à stocker dans chaque nœud/ligne de l'arbre dépendent de ce qu'on va en faire ensuite. Si on a besoin de descendre, les fils suffisent, pour remonter à la racine, le parent suffira. Tout dépendra des besoins.

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

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/11/2019, 19h06
  2. Pandas - DataFrame - Problème de resampling
    Par Gabriel_1234 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/08/2019, 14h57
  3. [pandas] pandas.DataFrame : Comment ajouter une ligne ?
    Par Oblinky dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 23/07/2018, 09h52
  4. [Python 3.x] Pandas Dataframe selection
    Par thais781 dans le forum Général Python
    Réponses: 3
    Dernier message: 12/03/2018, 18h04
  5. Import .txt vers Panda Dataframe, problème header
    Par pwetzou dans le forum Général Python
    Réponses: 12
    Dernier message: 03/02/2017, 09h37

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