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 :

Tableau à partir d'un dictionnaire


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Tableau à partir d'un dictionnaire
    Bonjour,

    J'aimerais réussir à créer un tableau de présence ou d'absence de données de stations sismologiques à partir d'un dictionnaire.

    Le dictionnaire est de la forme suivante :
    - les clés sont les noms des stations
    - les valeurs sont toutes les dates où j'ai de la donnée sous format UTCDatetime ( https://docs.obspy.org/packages/auto...CDateTime.html )

    exemple pour le station ALHU :

    {'ALHU': [2008-02-09T00:00:00.000000Z,
    2008-04-09T00:00:00.000000Z,
    2008-05-19T00:00:00.000000Z,
    2008-07-18T00:00:00.000000Z,
    2008-08-27T00:00:00.000000Z,
    2008-10-26T00:00:00.000000Z,
    2008-12-08T00:00:00.000000Z],}

    L'idée serait que le tableau serait de la forme suivante :
    -Chaque ligne correspond à une station
    -Chaque colonne à un jour de l'année
    - Ett biensûr cela à partir du dictionnaire précédent

    Je voudrais remplir chaque case du tableau soit par un code couleur (vert=présence de donnée, rouge=absence) ou alors par un code binaire (1=présence et 0=absence).

    Si quelqu'un pouvait me conseiller ou m'aider à réaliser ce tableau ça serait super gentil

    Merci à vous !

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

    Citation Envoyé par jakes64 Voir le message
    Si quelqu'un pouvait me conseiller ou m'aider à réaliser ce tableau ça serait super gentil
    Encore coincé pour l'écriture une double boucle "for" de quelques lignes?

    La seule difficulté la dedans est de récupérer le numéro du jour à partir d'une date comme 2008-02-09T00:00:00.000000Z.
    Vous pouvez utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import datetime as dt
    >>> x = dt.datetime.strptime('2008-02-09T00:00:00.000000Z'[:10], '%Y-%m-%d')
    >>> x.timetuple().tm_yday
    40
    Pour le reste, si vous ne postez pas un minimum de code en exposant le soucis que vous avez...

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 62
    Points
    62
    Par défaut
    mettez donc a plat vos valeurs d'entrée et votre structure cible vous verrez ca va allez tout seul
    pour ma part étant adepte des xml que j'utilise en masse pour le fichier de paramétrage je commence toujours définir la structure de données ce qui me simplifie la vie pour definir les dictionnaires qu'il alimente

    un petite aide : définir un dictionnaire des station valide et un des données .

    exemple

    MonDictStation={IdStation1:NomStation,locGeo} (et autre donnée pertinent)
    MesDataStation={IdStation1:UTCDatetime,Année, Mois,Time , DataValeur}

    après tu peux grouper en tuple ou liste si tu veux
    Et comme dis le modérateur vaut "pécher" un peu si tu veux manger toute ta vie

    pour les fonctions des dictionnaires
    https://docs.python.org/3/library/st...ight=dict#dict

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Merci à vous deux pour votre aide. j'y suis finalement arrivé en passant par la création d'un nouveau dictionnaire à partir du précédent, puis en créant une nouvelle liste contenant mes vecteurs puis en convertissant cette liste en matrice avec numpy.matrix !

    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
    J={}
    for sta in sorted(D.keys()) :
        n=len(D.get(sta))
        new_vec=list(date_vec)
        for i in range(n):
            if D.get(sta)[i] in date_vec :
                new_vec[date_vec.index(D.get(sta)[i])]=int(1)
                J.setdefault(sta, [new_vec])
        for j in range(len(J.get(sta)[0])) :
            if type(J.get(sta)[0][j]) is str :
               J.get(sta)[0][j]=int(0)
    m=[]
    for sta in sorted(J.keys()):
        m.append(np.asarray(J.get(sta)[0]))
    M=np.matrix(m)
    Je cherche maintenant un moyen efficace et automatisé de ploter cette matrice sous la forme d'un tableau. J'ai trouver un moyen de le faire en créant un fichier excel à partir de la liste "m" contenant les vecteurs de présence ou absence de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    workbook = xlsxwriter.Workbook('Data_availability.xlsx')
    worksheet = workbook.add_worksheet()
    for i in range(len(sta_list)) :
        for j in range(len(date_vec)):
            worksheet.write(i+1, 0, str(sta_list[i]))
            worksheet.write(0,j+1 , date_vec[j][0:10]) 
            worksheet.write(i+1, j+1 , m[i][j])
    workbook.close()
    Cependant avec cette technique il me reste à faire une mise en page manuelle de ce tableau que j'aimerais eviter et avoir une automatisation la plus complète possible.
    Je n'ai pas réussi à trouver un autre moyen que le fichier excel dans la doc. Avez-vous connaissance d'un module ou fonction pouvant m'aider à réaliser plus facilement mon tableau ?

    Encore merci à vous !

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par jakes64 Voir le message
    Cependant avec cette technique il me reste à faire une mise en page manuelle de ce tableau que j'aimerais eviter et avoir une automatisation la plus complète possible.
    La mise en page d'excel sont des propriétés données aux cellules.
    A défaut de le programmer, vous pourriez partir d'un fichier XL ayant cette mise en page (un template), mettre à jour les valeurs, sauvegarder sous un nouveau nom.

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

Discussions similaires

  1. [PHPLIB] Afficher un tableau à partir d'une requête
    Par Erigion dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 06/02/2006, 11h55
  2. [SQL] Obtenir un tableau à partir d'une liste
    Par JMO91 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/01/2006, 00h07
  3. [Tableaux] Coloriser un tableau à partir de mon code
    Par pod1978 dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2005, 16h25
  4. [Requête]Affichage d'un tableau à partir de 2 tables SQL
    Par sp4ever dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/10/2005, 11h32
  5. [XSLT] Créer un tableau à partir de sa description
    Par Skyou dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 20/03/2005, 20h01

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