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 :

extraire colonne python3


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut extraire colonne python3
    Bonjour !

    mon_fichier.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ORIGX2      0.000000  1.000000  0.000000          
    ORIGX3      0.000000  0.000000  1.000000             
    SCALE1      0.015962  0.000000  0.002703           
    SCALE2      0.000000  0.012132  0.000000               
    SCALE3      0.000000  0.000000  0.018947            
    PICK       1  N   VAL A   1      10.720  19.523   6.163 
    PICK       2  CA  VAL A   1      10.228  20.761   6.807 
    PICK       3  C   VAL A   1       8.705  20.714   6.878 
    PICK       4  O   VAL A   1       8.164  20.005   6.015 
    PICK       5  CB  VAL A   1      10.602  22.000   5.966 
    PICK       6  CG1 VAL A   1      10.307  23.296   6.700     
    PICK       7  CG2 VAL A   1      12.065  21.951   5.544
    Je travaille sur plusieur de type mon_fichier.txt
    J'aimerai créer une fonction où j'extraire uniquement les lignes avec PICK et les colonnes 3, 4, 6, 7, 8 et 9 de mon_fichier.txt. Puis convertir la colonne 6 en entier, et mettre les 3 dernières colonnes en format décimal car tout est par défaut en chaîne de caractères.
    J'aimerai enfin stocké ce que je viens d'extraire dans une liste nommé liste_atomes qui écrit la sortie telle quelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     [['N', 'VAL', 1, 10.720  19.523   6.163],
     ['CA',  'VAL', 1, 10.228, 20.761, 6.807] 
    ...
    Si quelqu'un a une idée ??

  2. #2
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 889
    Points : 3 728
    Points
    3 728
    Par défaut
    Salut,

    J'ai essayé de comprendre mais ce fut en vain... Il y a des points que je n'ai pas compris :

    Citation Envoyé par judkil Voir le message
    de mon_fichier.txt mais uniquement pour les lignes commençant par atom
    Mais dans l'exemple aucune ligne ne commence par "atom"... Ce mot n'est même pas du tout présent...

    Citation Envoyé par judkil Voir le message
    convertir la colonne 3 en entier,
    C'est laquelle la colonne 3 ? Je ne vois pas de nombre à la colonne 3...

    Citation Envoyé par judkil Voir le message
    ..., et mettre les 3 dernières colonnes en format décimal.
    Ce sont lesquelles les trois dernières colonnes ? Si on regarde votre exemple : ['N', 'VAL', 1, 10.720 19.523 6.163] eh bien on voit que bien trois nombres décimaux (10.720 19.523 6.163) mais ils ne sont pas dans les trois dernières colonnes où on a plutôt ça : 6.163 1.00 21.36 ???

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par judkil Voir le message
    Bonjour !

    mon_fichier.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ORIGX2      0.000000  1.000000  0.000000          
    ORIGX3      0.000000  0.000000  1.000000             
    SCALE1      0.015962  0.000000  0.002703           
    SCALE2      0.000000  0.012132  0.000000               
    SCALE3      0.000000  0.000000  0.018947            
    PICK       1  N   VAL A   1      10.720  19.523   6.163  
    PICK       2  CA  VAL A   1      10.228  20.761   6.807 
    PICK       3  C   VAL A   1       8.705  20.714   6.878 
    PICK       4  O   VAL A   1       8.164  20.005   6.015 
    PICK       5  CB  VAL A   1      10.602  22.000   5.966 
    PICK       6  CG1 VAL A   1      10.307  23.296   6.700    
    PICK       7  CG2 VAL A   1      12.065  21.951   5.544
    Je travaille sur plusieur de type mon_fichier.txt
    J'aimerai créer une fonction où j'extraire les lignes uniquement avec PICK et les colonnes 3, 4 , 6, 7, 8 et 9 de mon_fichier.txt. Puis convertir la colonne 6 en entier, et mettre les 3 dernières colonnes en format décimal.
    J'aimerai enfin stocké ce que je viens d'extraire dans une liste nommé liste_atomes qui écrit la sortie telle quelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     [['N', 'VAL', 1, 10.720  19.523   6.163],
     ['CA',  'VAL', 1, 10.228, 20.761, 6.807] 
    ...
    Si quelqu'un a une idée ??

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Je viens de réaliser quelques petites corrections pour que ce soit plus claire

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Cela ne paraît pas bien compliqué.
    Ce qui serait bien, c'est que vous mettiez là où vous êtes arrivé et ce que vous avez fait pour tenter de résoudre votre problème.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Et bien je ne sais pas par où commencer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    def function(mon_fichier.txt)
     
         return
    Je ne vois pas comment extraire uniquement les lignes ayant POINT. avec un if et une inégalité ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Il ne faut peut-être pas exagérer non plus...

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Bon okk j'abuse. Je sais qu'il faut que j'utilise un open pour ouvrir un fichier. Un if va me permettre de définir des conditions pour les colonnes. Je vais devoir créer une liste vide, puis utiliser apprend.
    Ce sont des morceaux d'idées que j'ai mais pour tout mettre en bloc je ne vois pas.

  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Dans ce cas, il faut envisager de prendre un tuto et d'apprendre tout cela.
    Il ne faut pas hésiter à utiliser les "print" pour voir si ce qui sort correspond à ce que tu attends.

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Je suis sur un boulot de plusieurs étapes. Je cherche à résoudre ce problème par une solution possible.

    Quand qql a un problème de téléphone, on ne lui dit pas tu vas sur le site d'Androïd essayes d'apprendre le perl. On lui dit l'étape 1 pour résoudre ta panne c'est ça, cliques là. L'étape 2 c'est ça, cliques ici et tous le monde est content et les personnes qui ont le même problème utilisent la même solution et sont contents...

    Si quelqu'un a une idée de solution je suis preneur ......

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Mais c'est très gentil de ta part de m'avoir apporté un début de réponse.

  12. #12
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    En fait, ce n'est pas un forum où on demande aux autres de faire son travail, c'est un forum où tu demandes de l'aide quand tu bloques, lorsque tu te trouves en face d'une erreur que tu ne comprends pas. Là, il n'y a aucune recherche de ta part, dirait-on.

  13. #13
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Voici un bout de code, que je n'ai pas pris la peine de tester. C'est déjà bien trop vous donner vu le si peu d'éléments que vous avez présenté, et ce n'est pas vous faire un cadeau car rien ne vaut la recherche par soi même pour comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def get_data(fichier):
         d=[]
         with open(fichier,'r') as f :
              for line in f :
                   if line.startwith('PICK'):
                        l = line.split(' ')
                        d.append( [ l[3] , l[5], float(l[6]), float(l[7]), float(l[8]) ]  )
         return d
     
    print(get_data('mon_fichier.txt'))

  14. #14
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 889
    Points : 3 728
    Points
    3 728
    Par défaut
    Salut,

    Il y a une petite erreur de frappe à la ligne 5 if line.startwith('PICK'): mais je laisse judkil trouver...

    Sinon il y aura peut-être aussi un problème par rapport à la ligne 6 l = line.split(' ') car il se peut que les données ne soit pas séparées par un seul espace... D'ailleurs il y a plusieurs espaces entre les données dans le texte posté par judkil... Dans le fichier il se peut que ce soit une tabulation...

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Ok je vais réfléchir

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Il manque un s après le t à

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Si j'ai bien compris, quand python ouvre un fichier il le voit comme un tableau de colonnes et de lignes ?

  18. #18
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 609
    Points : 2 073
    Points
    2 073
    Par défaut
    Un fichier txt ou csv, oui.

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

    Citation Envoyé par judkil Voir le message
    On lui dit l'étape 1 pour résoudre ta panne c'est ça, cliques là. L'étape 2 c'est ça, cliques ici et tous le monde est content et les personnes qui ont le même problème utilisent la même solution et sont contents...

    Si quelqu'un a une idée de solution je suis preneur ......
    Dans une logique de dépannage, on a un objet "construit" supposé fonctionner dans des conditions normales de température et de pression.
    Beaucoup d'utilisateurs rencontrent les mêmes soucis, partager leur expérience fait du sens.

    La programmation est une activité de construction. L'objet qu'on veut construire est à définir et ses caractéristiques pourront évoluer dans le temps.

    On ne connait que la première étape: ouvrir des tutos et passer du temps à apprendre.

    Ignorer cette étape, c'est ignorer l'étendue de son ignorance sur ce que peut être "apprendre à programmer"...

    Citation Envoyé par judkil Voir le message
    Si j'ai bien compris, quand python ouvre un fichier il le voit comme un tableau de colonnes et de lignes ?
    On ne va pas vous expliquer ce qu'est un fichier, vous avez un tuto. dans lequel il y a une table des matières et certainement un ou plusieurs chapitres sur les fichiers.

    Si vous les aviez déjà potassé, fait quelques exercices, vous sauriez déjà répondre à cette question par vous même ou aller revoir ce que racontent ces chapitres pour vous rafraichir la mémoire.

    Vous auriez même des exercices corrigés qui auraient pu servir de point de départ de votre code.

    Allez demander de l'aide dans un forum de professionnels suppose qu'on est suffisamment motivé pour apprendre à programmer et le montrer en postant le code qu'on a essayé de faire...
    Sinon, c'est juste considérer que c'est une sorte de hotline de gens qui savent et qui ont du temps pour faire votre boulot (et essuyer des remarques désagréables).

    - W

  20. #20
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Points : 33
    Points
    33
    Par défaut
    Re-bonjour

    Voici un debut de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    d = []
    with open(donnees.txt, 'r') as f:
    	for line in f:
    		if line.startswith('PICK'):
    			l = line.split(' ')
    			d.append(line[3])
    			d.append(line[5]) # le l'essaie avec les deux premières colonne
    	print(d) # avec return j'obtiens un message d'erreur
    Pour extraire les lignes contenant PICK et uniquement les colonnes 3 et 4

    données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ORIGX2      0.000000  1.000000  0.000000          
    ORIGX3      0.000000  0.000000  1.000000             
    SCALE1      0.015962  0.000000  0.002703           
    SCALE2      0.000000  0.012132  0.000000               
    SCALE3      0.000000  0.000000  0.018947            
    PICK       1  N   VAL A   1      10.720  19.523   6.163  
    PICK       2  CA  VAL A   1      10.228  20.761   6.807 
    PICK       3  C   VAL A   1       8.705  20.714   6.878 
    PICK       4  O   VAL A   1       8.164  20.005   6.015 
    PICK       5  CB  VAL A   1      10.602  22.000   5.966 
    PICK       6  CG1 VAL A   1      10.307  23.296   6.700    
    PICK       7  CG2 VAL A   1      12.065  21.951   5.544

    output
    Je bloque lorsque j'essaie de mettre chaque ligne dans une sous liste de la liste d.


    J'aimerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [['N', 'VAL'], ['CA',  'VAL'] , .... ]
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ['N', 'VAL', 'CA',  'VAL']

Discussions similaires

  1. Tableur, extraire colonne nom PDF et nombre de pages
    Par drakolecho dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 11/10/2018, 14h51
  2. Extraire colonne d'un rectangular array
    Par Silver326 dans le forum Débuter
    Réponses: 1
    Dernier message: 21/05/2009, 21h49
  3. [VBA] Extraire colonne dans presse papier
    Par Léponge85 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 11h55
  4. Réponses: 3
    Dernier message: 06/11/2006, 08h14
  5. SELECT : extraire 2 val d'1 colonne avec contraintes diff
    Par NiBicUs dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/03/2004, 14h56

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