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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    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 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    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
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    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
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

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

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    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
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    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 Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

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

  8. #8
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par judkil Voir le message
    extraire uniquement les lignes avec PICK et les colonnes 3, 4, 6, 7, 8 et 9 (...) 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. (...) stocké (...) dans une liste nommé liste_atomes
    je choisis de te répondre.

    un truc comme ça devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import re
     
    liste_atomes = []
    with open('donnees.txt', 'r') as f:
        for line in f:
            if line.startswith('PICK'):
                l = re.split(r'[\s]+', line.rstrip())[2:10]
                l = l[:2] + l[3:]
                l[2] = int(l[2])
                l[3:] = map(float, l[3:])
                liste_atomes.append(l)
    et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [['N', 'VAL', 1, 10.72, 19.523, 6.163],
     ['CA', 'VAL', 1, 10.228, 20.761, 6.807],
     ['C', 'VAL', 1, 8.705, 20.714, 6.878],
     ['O', 'VAL', 1, 8.164, 20.005, 6.015],
     ['CB', 'VAL', 1, 10.602, 22.0, 5.966],
     ['CG1', 'VAL', 1, 10.307, 23.296, 6.7],
     ['CG2', 'VAL', 1, 12.065, 21.951, 5.544]]
    la compréhension du code est laissée en exercice, si ça t'intéresse.

  9. #9
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    Oui merci je suis en train de le lire lignes par lignes.....

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 107
    Par défaut
    Je pense que je n'ai pas toute à fait bien présenter le problème

    Voici le input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Voici la position des string pour extraire les chaine de caractere
    [0:6]  [6:11] [12:16] [17:20] [21:22] [22:26] [30:38] [38:46] [46:54]
    PICK   1291    C       ASP     B       275     36.749  95.634  34.461
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PICK   1288  ND2 ASN B 274      36.786  93.769  29.079
    PICK   1289  N   ASP B 275      36.697  93.705  32.859
    PICK   1290  CA  ASP B 275      37.362  94.316  34.010
    PICK   1291  C   ASP B 275      36.749  95.634  34.461
    PICK   1292  O   ASP B 275      36.698  95.930  35.652
    PICK   1293  CB  ASP B 275      38.837  94.563  33.695
    PICK   1294  CG  ASP B 275      39.609  93.283  33.449
    PICK   1295  OD1 ASP B 275      39.558  92.378  34.313
    PICK   1296  OD2 ASP B 275      40.277  93.192  32.395
    PICK   1297  N   ASN B 276      36.311  96.431  33.496
    HETPCK 1587 ZN    ZN A 501      45.429  65.126  31.470
    HETPCK 1588 ZN    ZN B 502      17.304  93.631  37.510

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