1
votes

typeError help, plt.scatter lisant mon .csv comme vrai / faux plutôt que comme des valeurs numériques

Je suis ceci article , en utilisant mes propres données pour essayer de tracer le nombre de commandes d'un client par rapport à ses dépenses à vie lorsque j'obtiens cette erreur:

J'ai essayé de supprimer les valeurs vrai / faux de mon dataframe et la mise à jour des packages pertinents

TypeError                                 Traceback (most recent call last)
<ipython-input-74-221045cec1a1> in <module>
      3 y_means = km4.fit_predict(X)
      4 #Visualizing the clusters for k=4
----> 5 plt.scatter(X[y_means==0,0],X[y_means==0,1],s=50, c='purple',label='Cluster1')
      6 plt.scatter(X[y_means==1,0],X[y_means==1,1],s=50, c='blue',label='Cluster2')
      7 plt.scatter(X[y_means==2,0],X[y_means==2,1],s=50, c='green',label='Cluster3')

/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in __getitem__(self, key)
   2925             if self.columns.nlevels > 1:
   2926                 return self._getitem_multilevel(key)
-> 2927             indexer = self.columns.get_loc(key)
   2928             if is_integer(indexer):
   2929                 indexer = [indexer]

/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2655                                  'backfill or nearest lookups')
   2656             try:
-> 2657                 return self._engine.get_loc(key)
   2658             except KeyError:
   2659                 return self._engine.get_loc(self._maybe_cast_indexer(key))

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

TypeError: '(array([ True,  True,  True, ...,  True,  True,  True]), 0)' is an invalid key```



Update: After following the advice in the comments and changing my plt.scatter to `plt.scatter(X[y_means==0][:,0],X[y_means==0][:,1],`

I receive the error `TypeError: '(slice(None, None, None), 0)' is an invalid key`


2 commentaires

Vous devriez l'essayer avec plt.scatter (X [y_means == 0] [:, 0], X [y_means == 0] [:, 1], ....


Après cela, je reçois, TypeError: '(slice (None, None, None), 0)' est une clé invalide


3 Réponses :


2
votes

C'était un problème en essayant d'utiliser une technique numpy sur un pandas.dataframe Je l'ai converti en utilisant X = X.value et cela a fonctionné


1 commentaires

pouvez-vous s'il vous plaît essayer d'expliquer ce que vous entendez par x = x.value? Merci



0
votes
using Your error code here 

y_means = km4.fit_predict(X)
# solution, convert the dataframe to a np.array
#Visualizing the clusters for k=4
X = np.array(X) #that all
plt.scatter(X[y_means==0,0],X[y_means==0,1],s=50, c='purple',label='Cluster1')
plt.scatter(X[y_means==1,0],X[y_means==1,1],s=50, c='blue',label='Cluster2')
plt.scatter(X[y_means==2,0],X[y_means==2,1],s=50, c='green',label='Cluster3')

0 commentaires

0
votes

Utilisez X = X.values ​​ après l'importation de l'ensemble de données


0 commentaires