Sous liste et boucle
Résolu
Antioche75
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'essaie d'obtenir à partir d'un dataframe constitué de deux colonnes:
- marque de bateaux
- modèles de bateaux

de pouvoir obtenir la liste de chaque modèles en entrant simplement le nom de la marque
mais quand j'essaie de faire une boucle j'obtiens toujours
Une idée? Par ailleurs outre le problème de syntaxe que je n'arrive pas à résoudre, je ne sais pas si c'est le meilleur moyen de parvenir à mes fins (Classes ?) Merci d'avance pour votre aide
J'essaie d'obtenir à partir d'un dataframe constitué de deux colonnes:
- marque de bateaux
- modèles de bateaux

de pouvoir obtenir la liste de chaque modèles en entrant simplement le nom de la marque
import pandas as pd
df = pd.read_csv("test liste.csv", sep=";")
Ultramar = df.loc[df['lib_marque'] == 'Ultramar','lib_model'].tolist()
liste_marques = df['lib_marque'].tolist()
liste_marques
mylist2 = set(liste_marques) #passage en set puis retour en liste pour ne garder que les valeurs uniques
list_marques = list(mylist2)
for x in list_marques :
df.loc[df["lib_marque" == x,'lib_model'].tolist()
mais quand j'essaie de faire une boucle j'obtiens toujours
Input In [2]
df.loc[df["lib_marque" == x,'lib_model'].tolist()
^
SyntaxError: unexpected EOF while parsing
Une idée? Par ailleurs outre le problème de syntaxe que je n'arrive pas à résoudre, je ne sais pas si c'est le meilleur moyen de parvenir à mes fins (Classes ?) Merci d'avance pour votre aide
Configuration: Windows / Chrome 99.0.4844.51
A voir également:
- Sous liste et boucle
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Liste site streaming illégal - Accueil - Services en ligne
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je pense que tu pourras identifier la source de l'erreur en comparant la ligne en erreur et la ligne 3.
je pense que tu pourras identifier la source de l'erreur en comparant la ligne en erreur et la ligne 3.
Je ne sais pas comment mettre un fichier directement sur le forum :
https://www.transfernow.net/en/dltransfer?utm_source=20220303B9kLjPVZ
https://www.transfernow.net/en/dltransfer?utm_source=20220303B9kLjPVZ
bien reçu le fichier.
Je me demande si ton soucis n'est pas la méthode utilisée pour "entrer une des marques présentes".
Qu'essaies-tu d'obtenir exactement?
Ceci fonctionne bien chez moi:
Je me demande si ton soucis n'est pas la méthode utilisée pour "entrer une des marques présentes".
Qu'essaies-tu d'obtenir exactement?
Ceci fonctionne bien chez moi:
import pandas as pd df = pd.read_csv("test liste.csv", sep=";") Ultramar = df.loc[df['lib_marque'] == 'Ultramar','lib_model'].tolist() liste_marques = df['lib_marque'].tolist() print(liste_marques) mylist2 = set(liste_marques) #passage en set puis retour en liste pour ne garder que les valeurs uniques list_marques = list(mylist2) for x in list_marques : print(x,df.loc[df["lib_marque"] == x,'lib_model'].tolist()) m=input("marque?") print(m,df.loc[df["lib_marque"] == m,'lib_model'].tolist())
En fait j'essaie de pouvoir obtenir par la suite , un peu comme un dictionnaire, en gros en écrivant n'importe quelle marque et obtenir en retour tous les modèles pour cette marque, dans le code que tu proposes, cela imprime l'ensemble des marques et leurs modèles
Je pense en effet que le problème est la méthode utilisée, peut être n'est ce pas une boucle for avec "x in", mais je ne vois pas quoi utiliser à la place ?
Je pense en effet que le problème est la méthode utilisée, peut être n'est ce pas une boucle for avec "x in", mais je ne vois pas quoi utiliser à la place ?
En fait quand j'entre ton code :
J'ai la liste par défaut de toutes les marques et de tous les modèles associés qui s'affiche, et vu le nombre le programme charge en boucle et je n'arrive pas à exécuter de code ensuite.
https://www.zupimages.net/viewer.php?id=22%2F09%2F4enk.png
for x in list_marques :
print(x,df.loc[df["lib_marque"] == x,'lib_model'].tolist())
m=input("marque")
print(m,df.loc[df["lib_marque"] == m,'lib_model'].tolist())
J'ai la liste par défaut de toutes les marques et de tous les modèles associés qui s'affiche, et vu le nombre le programme charge en boucle et je n'arrive pas à exécuter de code ensuite.
https://www.zupimages.net/viewer.php?id=22%2F09%2F4enk.png
toutefois, quand j'essaie d'entrer une des marques présentes dans la liste 'list_marques" , par exemple <Hunter>, j'obtiens ceci:
Je pensais que le "x" faisait office de nomination pour les éléments présents dans la liste "list_marques" ?