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 :

Remplir cellule d'un tableau en fonction du contenu des cellules d'une autre colone [Débutant(e)]


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Remplir cellule d'un tableau en fonction du contenu des cellules d'une autre colone
    Bonjour,

    Eternel débutant en python (je dois avoir l'occasion de pratiquer 3 fois par an) j'aurais besoin de manipuler un fichier csv mais j'avoue coincer sur la partie "logique".. Toute aide serait la bienvenue =)

    J'ai 3 colonnes dans mon fichier csv

    col1 = [1,2,3,4,5,6,7,8,9,10]
    col2 = [A,A,A,B,C,C,C,C,A,A]
    col3 = []

    Je voudrais que mon script me donne pour col3 une valeur incrémentée pour chaque classe dans la col2 (c'est à dire chaque groupe de valeurs continues)
    En d'autres mots: tant que la valeur d'une cellule n'est pas différente de celle de la cellule précédente dans la col2 garder le même numéro dans col3

    Et d'un point de vue résultat, ca devrait donner: col3 = [1,1,1,2,3,3,3,3,4,4]

    Une idée de la façon de procéder ? :/
    Navré pour la question sans doute très "bête".

  2. #2
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour,

    Citation Envoyé par kerplouz Voir le message
    Navré pour la question sans doute très "bête".
    Ce n'est pas trop que la question soit très bête, c'est surtout qu'on a l'impression que, quel que soit le langage, Python ou un autre, la "partie logique", comme tu dis, pose problème (est-ce le cas ?).

    Si les termes "initialisation", "incrémentation", "valeur courante", "itération" ne t'évoquent pas grand chose, il te sera difficile de traduire tout ça en Python (ou autre). Peut-être faudrait-il te tourner vers des cours de débutants en programmation avant (y en a-t-il sur DVP ?)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Les termes que tu évoques me parlent (après vérification j'en connais la définition), en revanche ce qui est sur c'est que je manque de la gymnastique mentale régulière nécessaire à leur utilisation efficace
    Si j'avais le temps de suivre un cours de programmation je le ferai volontiers mais malheureusement...

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Je vous propose ceci : toujours avec le groupby de itertools
    Citation Envoyé par kerplouz Voir le message
    Bonjour,

    Eternel débutant en python (je dois avoir l'occasion de pratiquer 3 fois par an) j'aurais besoin de manipuler un fichier csv mais j'avoue coincer sur la partie "logique".. Toute aide serait la bienvenue =)

    J'ai 3 colonnes dans mon fichier csv

    col1 = [1,2,3,4,5,6,7,8,9,10]
    col2 = [A,A,A,B,C,C,C,C,A,A]
    col3 = []

    Je voudrais que mon script me donne pour col3 une valeur incrémentée pour chaque classe dans la col2 (c'est à dire chaque groupe de valeurs continues)
    En d'autres mots: tant que la valeur d'une cellule n'est pas différente de celle de la cellule précédente dans la col2 garder le même numéro dans col3

    Et d'un point de vue résultat, ca devrait donner: col3 = [1,1,1,2,3,3,3,3,4,4]

    Une idée de la façon de procéder ? :/
    Navré pour la question sans doute très "bête".
    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
     
    from itertools import groupby
     
    col1 = [1,2,3,4,5,6,7,8,9,10]
    col2 = ["A","A","A","B","C","C","C","C","A","A"]
    col3 = []
     
    gc2 = [list(g) for (c,g) in groupby(col2)]
    i=0
    for lx in gc2:
        lx = "".join(lx)
        lx = lx.replace(lx[0],str(col1[i]))
        col3.extend(list(map(int,lx)))
        i +=1
     
    print(col3)

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/02/2015, 23h38
  2. [FPDF] Comment centrer le contenu des cellules d'un tableau généré avec FPDF ?
    Par hacksi dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/02/2008, 15h38
  3. Importer des cellules d'un tableau word
    Par Roller0022 dans le forum VBA Word
    Réponses: 2
    Dernier message: 16/06/2006, 08h19
  4. [Swing][JTable]Fusion des cellules d'un tableau
    Par LordBlaize dans le forum Composants
    Réponses: 1
    Dernier message: 23/03/2006, 18h48
  5. [VBA]comptage de lignes en fonction du contenu des cellules
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/12/2005, 11h38

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