Vous êtes courageux, sur ce fil !![]()
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
lol, donc tu n'as même pas testé mes 10 lignessi 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)
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à ditdix 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]
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
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.
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.
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.
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).
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
bonsoir papajocker excuse moi mais j'ai oublie un truc en programmation comment inserer des valeurs successives dans un dataframe
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
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 )
je n'y arrives pas
ci joint le fichier de donnée
merci pour ton aide stp test.xlsx
Et tant pis pour les autres
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]
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
Si vous utilisez dataframe.assign, ouvrir la documentation, jouer avec le premier exemple donné:
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 >>> import pandas as pd >>> df = pd.DataFrame({'temp_c': [17.0, 25.0]}, ... index=['Portland', 'Berkeley']) >>>
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(X=3) temp_c X Portland 17.0 3 Berkeley 25.0 3 >>>
....
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
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
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
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 programmationon 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 cellulene 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)
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
Comme tu peux le voir, j'ai pondu 2 algorithmes extrèmement complexes que tu étais incapable d'imaginer![]()
merci papajocker mais j'ai beau comprendre mais quand je test python me sort des erreur
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 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)
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
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]
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 pythonaucun problème si tu viens découvrir python il y a 1 heure
)
répéter qu'il existe des tutos sert à quelque chose ?
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![]()
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 comprendsmerci pour votre aide
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()
j'ai resolu mon probleme merci les amis je ne vous embete plus sur ce sujet
Partager