AttributeError liste d'objet n'a pas d'attribut ajouter
Python est nouveau pour moi et je suis en train de faire une machine d'apprentissage du code à l'aide de python. Mon scénario, c'est que je suis de la lecture des données my sql et en essayant de donner une forme à ces données afin que je puisse l'utiliser pour MLP formation.
Mon code est ci-dessous:
connection = mysql.connector.connect(host='localhost', port=3306, user='root', passwd='mysql', db='medicalgame')
cur = connection.cursor()
query = ""
cur.execute(query)
# X_train will be a list of list and later we'll convert it to a numpy ndarray
X_train = []
for row in cur:
X_train.add(row)
connection.close()
X_train should be ready
X_train = np.asarray(X_train)
print 'The shape of X_train is', X_train.shape
Au cours de debug le résultat de la requête que j'ai est comme ceci:
(6, 1, 1, 1, 2, u F', 1, 0, 0, 19)
Quelqu'un peut m'aider comment puis-je corriger l'erreur et de donner forme à mon X_train, de sorte que MLP l'accepter comme un input ?
utilisation
pouvez-vous expliquer le problème au sujet de la requête? vous voulez dire que vous obtenez des lignes, mais parfois, une lettre de glisse et vous souhaitez le supprimer?
Ressemble pour l'instant, ajouter fonctionne, mais je ne suis pas sûr de savoir pourquoi cette étrange lettre " u " est à venir dans mon résultat de la requête. mon X_train est comme ça maintenant : [(6, 1, 1, 1, 2, u F', 1, 0, 0, 19), (6, 1, 1, 1, 2, u'', 1, 0, 0, 14)] pouvez-vous me dire comment puis-je supprimer cette '(' avec '[' ce ?
append
, add
est pour les ensembles.pouvez-vous expliquer le problème au sujet de la requête? vous voulez dire que vous obtenez des lignes, mais parfois, une lettre de glisse et vous souhaitez le supprimer?
Ressemble pour l'instant, ajouter fonctionne, mais je ne suis pas sûr de savoir pourquoi cette étrange lettre " u " est à venir dans mon résultat de la requête. mon X_train est comme ça maintenant : [(6, 1, 1, 1, 2, u F', 1, 0, 0, 19), (6, 1, 1, 1, 2, u'', 1, 0, 0, 14)] pouvez-vous me dire comment puis-je supprimer cette '(' avec '[' ce ?
u'F'
est un caractère unicode. Sans doute votre base de données a un caractère ou d'une chaîne de champ à valeurs.OriginalL'auteur Abbas Zahid | 2016-11-12
Vous devez vous connecter pour publier un commentaire.
le message est clair.
list
n'a pas de méthodeadd
parce que c'est commandé (il a un dsous__add__
méthode, mais c'est pour plus entre les listes). Vous pouvezinsert
mais vous voulezappend
. Donc, la façon correcte est:MAIS le moyen privilégié pour se convertir à une liste directement (itération sur
cur
éléments pour créer votre liste dans un simple et performant:MAIS vous ne pouvez pas le faire depuis votre liste contient des données erronées. Heureusement, vous pouvez les filtrer dans une liste imbriquée compréhension comme ceci:
ce construit votre liste de listes, mais filtre les valeurs non entières et de nourrir
numpy.asarray
rendements (avec vos données d'échantillonnage):que c'est bon! mais je tiens à enquêter sur ce faux entrée si j'étais vous. Si vous ne savez pas pourquoi il est ici, vous pouvez avoir plus de problèmes à l'avenir.
que le faux entrée est de m'identifier que la valeur de chaîne unicode 🙂 .. je l'ai fixée à l'aide de cette X_train[X_train == 'F'] == 0 Parce que pour ma MLP, j'ai besoin que des données numériques.
dans ce cas, vous pouvez simplement faire
X_train = list(cur)
vous dire je n'ai pas besoin de boucle, si j'ai utilisé cette X_train = liste(cur) ?
OriginalL'auteur Jean-François Fabre