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 :

int object has not attribute lower


Sujet :

Python

  1. #41
    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
    Vous êtes courageux, sur ce fil !

  2. #42
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    a votre avis comment je fais pour afficher chaque ligne du dataframe je pensais que for i in df_result.idex : parcourait chaque ligne du dataframe
    je seche merci d'avance

  3. #43
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 320
    Par défaut
    lol, donc tu n'as même pas testé mes 10 lignes si cela fonctionne avec mon code (je n'ai fait que copier ton code), tu peux penser que ta table n'est pas bonne ? Comme dit plus haut, retour a la case départ : il y a 15 jours (dommage, tu aurais pu utiliser ces 15 jours pour apprendre au lieu de copier du code)

  4. #44
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 822
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    a votre avis comment je fais pour afficher chaque ligne du dataframe je pensais que for i in df_result.idex : parcourait chaque ligne du dataframe
    je seche merci d'avance
    Voilà, c'est ce genre de remarques qui lasse et qui nous amène à nous foutre de toi ; "je pensais que" (mais jamais tu testes) ; "je sèche" (mais jamais tu montres que cherches en mettant rien que du print() pour voir ce qui se passe) ; "comment je fais pour" alors que tout le monde t'a déjà dit dix foiscent fois comment faire pour faire les choses allant jusqu'à t'écrire des codes que tu ne regardes même pas. Et même ce "merci d'avance" lui aussi finit par énerver (d'ailleurs c'est très impoli car ça induit une certaine forme de containte chez le lecteur se sentant en quelque sorte obligé de faire ce pour quoi on l'a remercié d'avance).
    Et si je te parle encore c'est juste parce que je pense que t'es encore rattrapable parce que sinon tu ne me verrais même plus (c'est d'ailleurs ce que j'ai fait dernièrement avec tes fils jusqu'à ce que je vois un truc venant de toi qui m'a incité à revenir et je t'assure que je commence à regretter).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #45
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    je tiens quand même a rétablir les choses c'est un forum d'entraide et de partage pas de jugement de niveau des gens si ca s'affichait correctement je n'aurais pas poser de question bien sur que je teste avant je suis developpeur juste je suis presse par le temps et je partage en plus mon travaille pour enrichir la connaissance scientifique
    je trouve python tordu je fais un for de chaque ligne et ca n'affiche pas le resultat dans une variable

  6. #46
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Apprends à mieux expliquer la nature du soucis que tu rencontres lorsque tu crées un nouveau fil.

    Les "ça marche pas" ou "ça ne fait pas comme je veux", ça n'aide jamais à piger où est le soucis que tu rencontres. Publie la partie du code concerné et décrit précisément le problème.

    Quand quelqu'un ici te poste une solution, ESSAIE LA !

    Lis les messages d'erreur que Python retourne. Commence par le bas du paquet de lignes d'erreurs, puis remonte progressivement si nécessaire.

    Être pressé par le temps est une chose, mais ici les gens ne sont que des bénévoles qui consacrent une partie de LEUR temps à essayer d'aider. Mais pour aider, il faut un minimum de bonne volonté en face.

  7. #47
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    merci arioch j'y tacherai

  8. #48
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 706
    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 706
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    je tiens quand même a rétablir les choses c'est un forum d'entraide et de partage pas de jugement de niveau des gens
    Relisez les règles: c'est un forum d'entraide de professionnels où les débutants (qui montrent qu'ils ont transpiré pour essayer d'apprendre) sont tolérés.


    Citation Envoyé par s2a07 Voir le message
    si ca s'affichait correctement je n'aurais pas poser de question bien sur que je teste avant je suis developpeur juste je suis presse par le temps
    Si vous étiez un développeur, vous sauriez comment décrire un problème avec un (petit) exemple qui permet de le reproduire... car c'est la base. Vous vous vous contentez d'affirmer des trucs sans fournir de quoi reproduire quoi que ce soit.

    Citation Envoyé par s2a07 Voir le message
    et je partage en plus mon travaille pour enrichir la connaissance scientifique
    En effet, vous venez visiblement ici pour partager votre travail (histoire qu'on le fasse à votre place)... la connaissance scientifique s'enrichira des résultats (pas du boulot).

    Citation Envoyé par s2a07 Voir le message
    je trouve python tordu je fais un for de chaque ligne et ca n'affiche pas le resultat dans une variable
    Si vous n'êtes pas confiant avec le fonctionnement d'une construction aussi basique qu'une boucle "for", c'est que vous n'avez pas pris le temps de commencer avec des exemples plus simples (comme les exercices proposés dans les tutos).

    Il n'en reste pas moins que Python peut donner des boutons à certains qui préféreront coder avec d'autres langages (qui leur paraîtra) moins imperméable.

    C'est leur choix et il se respecte d'autant qu'il y a suffisamment de langages et de styles de programmation pour y trouver son compte.

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

  9. #49
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    bonsoir papajocker excuse moi mais j'ai oublie un truc en programmation comment inserer des valeurs successives dans un dataframe
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import pandas as pd
    import numpy as np
    import re
    import math
    from collections import Counter
    import numpy as np
    df_result = pd.read_excel(r'C:\Users\User\Documents\test.xlsx')
    def levenshtein(chaine1, chaine2):
        taille_chaine1 = len(chaine1) + 1
        taille_chaine2 = len(chaine2) + 1
        levenshtein_matrix = np.zeros ((taille_chaine1, taille_chaine2))
        for x in range(taille_chaine1):
            levenshtein_matrix [x, 0] = x
        for y in range(taille_chaine2):
            levenshtein_matrix [0, y] = y
        for x in range(1, taille_chaine1):
            for y in range(1, taille_chaine2):
                if chaine1[x-1] == chaine2[y-1]:
                    levenshtein_matrix [x,y] = min(
                        levenshtein_matrix[x-1, y] + 1,
                        levenshtein_matrix[x-1, y-1],
                        levenshtein_matrix[x, y-1] + 1
                    )
                else:
                    levenshtein_matrix [x,y] = min(
                        levenshtein_matrix[x-1,y] + 1,
                        levenshtein_matrix[x-1,y-1] + 1,
                        levenshtein_matrix[x,y-1] + 1
                    )
        return (levenshtein_matrix[taille_chaine1 - 1, taille_chaine2 - 1])
    for i in df_result.index:
    Levensthein = levenshtein(df_result["id"][i],df_result["password"][i])
    df_result = df_result.assign(levenshtein=Levensthein )
    comment arrivait stp a mettre dans chaque ligne de la colonne levenshtein le resultat differents des distances de levensthein de l'id et du password de chaque ligne
    je n'y arrives pas
    ci joint le fichier de donnée
    merci pour ton aide stp test.xlsx

  10. #50
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 822
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    bonsoir papajocker
    Et tant pis pour les autres

    Citation Envoyé par s2a07 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in df_result.index:
    Levensthein = levenshtein(df_result["id"][i],df_result["password"][i])
    df_result = df_result.assign(levenshtein=Levensthein )
    T'as pas l'impression qu'il manque quelque chose? Style une tabulation pour indiquer à ce tordu de Python que les instructions appartiennent à la boucle? Je n'arrive même pas à comprendre comment tu peux oser dire que ce code s'exécute (une boucle sans instruction c'est interdit)...
    Et nommer une variable du même nom que sa fonction (à une majuscule près) ça ce n'est pas du tout tordu
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #51
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    le problème est que j'ai les mêmes valeurs dans la distance de levensthein il prends la valeurs au premier indice et l'insere partout comment lui faire comprendre que c'est le calcul de chaque ligne courrante de le distance de levenshtein de l'id et du password j'avais creer un tableau je ne vois pas comment faire je suis en apprentissage en python
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    import pandas as pd
     
    import numpy as np
     
    import re
     
    import math
     
    from collections import Counter
     
    import numpy as np
     
    df_result = pd.read_excel(r'C:\Users\User\Documents\test.xlsx')
     
    def levenshtein(chaine1, chaine2):
     
        taille_chaine1 = len(chaine1) + 1
     
        taille_chaine2 = len(chaine2) + 1
     
        levenshtein_matrix = np.zeros ((taille_chaine1, taille_chaine2))
     
        for x in range(taille_chaine1):
     
            levenshtein_matrix [x, 0] = x
     
        for y in range(taille_chaine2):
     
            levenshtein_matrix [0, y] = y
     
        for x in range(1, taille_chaine1):
     
            for y in range(1, taille_chaine2):
     
                if chaine1[x-1] == chaine2[y-1]:
     
                    levenshtein_matrix [x,y] = min(
     
                        levenshtein_matrix[x-1, y] + 1,
     
                        levenshtein_matrix[x-1, y-1],
     
                        levenshtein_matrix[x, y-1] + 1
     
                    )
     
                else:
     
                    levenshtein_matrix [x,y] = min(
     
                        levenshtein_matrix[x-1,y] + 1,
     
                        levenshtein_matrix[x-1,y-1] + 1,
     
                        levenshtein_matrix[x,y-1] + 1
     
                    )
     
        return (levenshtein_matrix[taille_chaine1 - 1, taille_chaine2 - 1])
     
    for i in df_result.index:
     
        lev_result = levenshtein(df_result["id"][i],df_result["password"][i])
     
        df_result = df_result.assign(levenshtein=lev_result)
     
        print(df_result)
     
     
    j'ai toujours la valeur 4 celle du premier indice
            id password  levenshtein
    0     alec      MTV          4.0
    1   albert     3377          4.0
    2    Bella     dell          4.0
    3  Brussea     qAzX          4.0
    4   Chawla     7653          4.0
    5  Corradi     Sexy          4.0
    6  Darnell     R2D2          4.0
    7    david      935          4.0
    8  Dominic   Filter          4.0
    9    edith    edith          4.0
     
    ---------------------------------

    merci pour votre aide

  12. #52
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 706
    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 706
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    j'avais creer un tableau je ne vois pas comment faire je suis en apprentissage en python
    Si vous utilisez dataframe.assign, ouvrir la documentation, jouer avec le premier exemple donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import pandas as pd
    >>> df = pd.DataFrame({'temp_c': [17.0, 25.0]},
    ... index=['Portland', 'Berkeley'])
    >>>
    pour constater qu'assigner une nouvelle colonne avec une seule valeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> df.assign(X=3)
              temp_c  X
    Portland    17.0  3
    Berkeley    25.0  3
    >>>
    crée la colonne avec la même valeur partout... alors que si on la remplit avec une liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> df.assign(Y=[1, 2])
              temp_c  Y
    Portland    17.0  1
    Berkeley    25.0  2
    >>>
    ....
    Apprendre à utiliser les outils que vous manipuler avant de constater qu'il ne font pas ce que vous voulez... est le b.a.ba.

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

  13. #53
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    Merci infiniment wiztriks mais comment mettre après le parcours de le l'index les différents résultats de la distance de levensthein entre l'id et le password à l'indice I dans un tableaux pour avoir la liste des différents indice j'ai initialiser une liste vide je parcours l'index et ensuite je fais un append mais il faut que j'incremente je ne vois pas la syntaxe en python
    Merci encore pour votre aide

  14. #54
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 706
    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 706
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    j'ai initialiser une liste vide je parcours l'index et ensuite je fais un append mais il faut que j'incremente je ne vois pas la syntaxe en python
    Si vous ne savez pas faire avec les indications données, c'est que vous voulez réaliser un projet bien trop ambitieux pour les connaissances que vous avez.

    Ouvrez un tuto, apprenez les bases plutôt que taper sur un clavier n'importe quoi sans trop comprendre . Vous y trouverez explications et exercices corrigés. De quoi vous muscler le cerveau pour les différents projets que vous pourrez entreprendre après.

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

  15. #55
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 320
    Par défaut
    je trouve très malheureux de piocher dans des méthodes et vouloir quelles fassent ce que je désire sans lire la doc

    Ici, tu as justement un problème de méthodologie avec 2 solutions (QUE TU MELANGES ) (en plus du reste déjà dit )
    pourtant c'est le behaba de la programmation on a même l'impression que tu ne sais pas ce qu'est une boucle...
    soit:
    - tu crées une nouvelle colonne, puis, dans ta bouche , tu changes la valeur de la cellule
    - tu stokes tous tes résultats de ta boucle, puis (donc après la boucle), tu crées en une fois une colonne avec les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    df["levensthein"] = 0   # créer la colonne et init
    for i in df:
        calcul = moncalcul(df["id"][i], df["password"][i])
        # if calcul != ?? : calcul = 0
        if calcul:
            df.at[i, "levensthein"] = calcul     # changer la valeur de la cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    levenstheins = ()   # conteneur temporaire
    for i in df:
        levenstheins.ajout( moncalcul(df["id"][i], df["password"][i]) )
    df.assign(levensthein=levenstheins)    # tout inserer en une seule fois
    ne me demande pas quelle est la bonne méthode sur ces 2 ... c'est a toi d'écrire les 2 et de tester (possible qu'il existe une 3eme encore meilleure - a toi de chercher)

    Comme tu peux le voir, j'ai pondu 2 algorithmes extrèmement complexes que tu étais incapable d'imaginer

  16. #56
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    merci papajocker mais j'ai beau comprendre mais quand je test python me sort des erreur
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    import pandas as pd
    import numpy as np
    import re
    import math
    from collections import Counter
    import numpy as np
     
    df_result = pd.read_excel(r'C:\Users\User\Documents\test.xlsx')
     
    def levenshtein(chaine1, chaine2):
     
        taille_chaine1 = len(chaine1) + 1
     
        taille_chaine2 = len(chaine2) + 1
     
        levenshtein_matrix = np.zeros ((taille_chaine1, taille_chaine2))
     
        for x in range(taille_chaine1):
     
            levenshtein_matrix [x, 0] = x
     
        for y in range(taille_chaine2):
     
            levenshtein_matrix [0, y] = y
     
        for x in range(1, taille_chaine1):
     
            for y in range(1, taille_chaine2):
     
                if chaine1[x-1] == chaine2[y-1]:
     
                    levenshtein_matrix [x,y] = min(
     
                        levenshtein_matrix[x-1, y] + 1,
     
                        levenshtein_matrix[x-1, y-1],
     
                        levenshtein_matrix[x, y-1] + 1
     
                    )
     
                else:
     
                    levenshtein_matrix [x,y] = min(
     
                        levenshtein_matrix[x-1,y] + 1,
     
                        levenshtein_matrix[x-1,y-1] + 1,
     
                        levenshtein_matrix[x,y-1] + 1
     
                    )
     
        return (levenshtein_matrix[taille_chaine1 - 1, taille_chaine2 - 1])
     
     
     
    levenstheins = []   # conteneur temporaire
    for i in df_result.index:
     
        levenstheins.append(levenshtein(df_result["id"][i], df_result["password"][i]))
     
        df_result.assign(levensthein=levenstheins)
     
        print(df_result)
    voici l'erreur
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    import pandas as pd
     
    import numpy as np
     
    import re
     
    import math
     
    from collections import Counter
     
    import numpy as np
     
     
     
    df_result = pd.read_excel(r'C:\Users\User\Documents\test.xlsx')
     
     
     
    def levenshtein(chaine1, chaine2):
     
     
     
        taille_chaine1 = len(chaine1) + 1
     
     
     
        taille_chaine2 = len(chaine2) + 1
     
     
     
        levenshtein_matrix = np.zeros ((taille_chaine1, taille_chaine2))
     
     
     
        for x in range(taille_chaine1):
     
     
     
            levenshtein_matrix [x, 0] = x
     
     
     
        for y in range(taille_chaine2):
     
     
     
            levenshtein_matrix [0, y] = y
     
     
     
        for x in range(1, taille_chaine1):
     
     
     
            for y in range(1, taille_chaine2):
     
     
     
                if chaine1[x-1] == chaine2[y-1]:
     
     
     
                    levenshtein_matrix [x,y] = min(
     
     
     
                        levenshtein_matrix[x-1, y] + 1,
     
     
     
                        levenshtein_matrix[x-1, y-1],
     
     
     
                        levenshtein_matrix[x, y-1] + 1
     
     
     
                    )
     
     
     
                else:
     
     
     
                    levenshtein_matrix [x,y] = min(
     
     
     
                        levenshtein_matrix[x-1,y] + 1,
     
     
     
                        levenshtein_matrix[x-1,y-1] + 1,
     
     
     
                        levenshtein_matrix[x,y-1] + 1
     
     
     
                    )
     
     
     
        return (levenshtein_matrix[taille_chaine1 - 1, taille_chaine2 - 1])
     
     
     
    #for i in df_result.index:
     
     
     
       # lev_result = levenshtein(df_result["id"][i],df_result["password"][i])
     
     
     
        #df_result = df_result.assign(levenshtein=lev_result)
     
     
     
     
     
    levenstheins = []   # conteneur temporaire
     
    for i in df_result.index:
     
        levenstheins.append(levenshtein(df_result["id"][i], df_result["password"][i]))
     
        df_result.assign(levensthein=levenstheins)
     
        print(df_result)
     
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    ~\AppData\Local\Temp/ipykernel_11996/3917079648.py in <module>
         64 for i in range(5):
         65     levenstheins.append(levenshtein(df_result["id"][i], df_result["password"][i]))
    ---> 66     df_result.assign(levensthein=levenstheins)
         67     print(df_result)
     
    ~\anaconda\lib\site-packages\pandas\core\frame.py in assign(self, **kwargs)
       4484 
       4485         for k, v in kwargs.items():
    -> 4486             data[k] = com.apply_if_callable(v, data)
       4487         return data
       4488 
     
    ~\anaconda\lib\site-packages\pandas\core\frame.py in __setitem__(self, key, value)
       3610         else:
       3611             # set column
    -> 3612             self._set_item(key, value)
       3613 
       3614     def _setitem_slice(self, key: slice, value):
     
    ~\anaconda\lib\site-packages\pandas\core\frame.py in _set_item(self, key, value)
       3782         ensure homogeneity.
       3783         """
    -> 3784         value = self._sanitize_column(value)
       3785 
       3786         if (
     
    ~\anaconda\lib\site-packages\pandas\core\frame.py in _sanitize_column(self, value)
       4507 
       4508         if is_list_like(value):
    -> 4509             com.require_length_match(value, self.index)
       4510         return sanitize_array(value, self.index, copy=True, allow_2d=True)
       4511 
     
    ~\anaconda\lib\site-packages\pandas\core\common.py in require_length_match(data, index)
        529     """
        530     if len(data) != len(index):
    --> 531         raise ValueError(
        532             "Length of values "
        533             f"({len(data)}) "
     
    ValueError: Length of values (1) does not match length of index (10)




    ci joint les données je ne comprends pas test.xlsx

  17. #57
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 822
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    merci papajocker mais j'ai beau comprendre mais quand je test python me sort des erreur
    Même pas foutu de copier/coller un code qu'on te fournit !!!
    La ligne 66 df_result.assign(levensthein=levenstheins) n'est pas à mettre dans la boucle

    Au fait, c'est un nouveau genre de nous mettre une ligne vide à chaque instruction? Tu te trouvais trop facile à lire tu t'es dit que tu allais nous rendre les choses encore plus difficile???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  18. #58
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 320
    Par défaut
    Citation Envoyé par s2a07 Voir le message
    merci papajocker mais j'ai beau comprendre mais quand je test python me sort des erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ValueError: Length of values (1) does not match length of index (10)
    Aucune envie de faire l'effort de tester si tu ne fais pas l'effort de comprendre
    Le monsieur te dit : vous avez 10 lignes mais vous insérez une colonne avec uniquement 1 valeur

    Le problème ici, c'est que malgré tes dires, tu n'as rien compris à mes 4 lignes de code (normal puisque tu ne sais pas faire une boucle en python aucun problème si tu viens découvrir python il y a 1 heure )
    répéter qu'il existe des tutos sert à quelque chose ?

    Citation Envoyé par papajoker Voir le message
    stokes tous tes résultats de ta boucle, puis (donc après la boucle), tu crées
    Heureusement que j'avais rajouté donc après la boucle, cela n'a pas suffit à ta compréhension. Que je te réponde en francais ou en python: même résultat

  19. #59
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    desole les amis j'ai du mal avec les dataframe et les boucles mais j'ai corrige l'indentation et je n'ai plus l'erreur des 10 lignes avec une seul valeur dans la colonne voici maintenant l'erreur

    je pige pas trop la maintenant autant quand on m'explique je comprends mais les messages d'erreur de python je ne les comprends
    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
    17
    18
     
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    ~\AppData\Local\Temp/ipykernel_11996/3825970173.py in <module>
         36 levenstheins = []   # conteneur temporaire
         37 for i in df_result.index:
    ---> 38     levenstheins.append(levenshtein(df_result["id"][i], df_result["password"][i]))
         39 df_result.assign(levensthein=levenstheins)
         40 print(df_result)
     
    ~\AppData\Local\Temp/ipykernel_11996/3825970173.py in levenshtein(chaine1, chaine2)
         10 def levenshtein(chaine1, chaine2):
         11     taille_chaine1 = len(chaine1) + 1
    ---> 12     taille_chaine2 = len(chaine2) + 1
         13     levenshtein_matrix = np.zeros ((taille_chaine1, taille_chaine2))
         14     for x in range(taille_chaine1):
     
    TypeError: object of type 'int' has no len()
    merci pour votre aide

  20. #60
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    j'ai resolu mon probleme merci les amis je ne vous embete plus sur ce sujet

Discussions similaires

  1. AttributeError: 'int' object has no attribute 'count'
    Par camvac dans le forum Général Python
    Réponses: 3
    Dernier message: 16/05/2013, 14h32
  2. Ftp : 'str' object has no attribute 'read'
    Par noquioz dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 02/01/2009, 15h46
  3. x object has no attribute y (PyQ4t et QLineEdit)
    Par EricStib dans le forum PyQt
    Réponses: 9
    Dernier message: 23/10/2008, 23h00
  4. Probleme : AttributeError: 'tuple' object has no attribute
    Par MrGecko dans le forum Général Python
    Réponses: 1
    Dernier message: 27/05/2007, 09h59
  5. Réponses: 2
    Dernier message: 26/05/2006, 14h48

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