Python K表示绘图未正确显示

Python K表示绘图未正确显示,python,pandas,matplotlib,scikit-learn,k-means,Python,Pandas,Matplotlib,Scikit Learn,K Means,我正试图在屏幕上直观地显示一次测试的结果 我的代码如下: import pandas as pd, seaborn as sns1 import matplotlib.pyplot as plt from scipy import cluster from sklearn.cluster import KMeans from sklearn.model_selection import train_test_split df = pd.read_csv('C:\\Users\\wunderma

我正试图在屏幕上直观地显示一次测试的结果

我的代码如下:

import pandas as pd, seaborn as sns1
import matplotlib.pyplot as plt
from scipy import cluster
from sklearn.cluster import KMeans
from sklearn.model_selection import train_test_split

df = pd.read_csv('C:\\Users\\wundermahn\\Desktop\\code\\divorce.csv')
y = df['Class']
X = df.drop('Class', axis=1)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

y_pred = KMeans(n_clusters=2, random_state=170).fit_predict(X_test)
plt.subplot(221)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.title("Guess")

plt.show()
这受到上面超链接K-Means链接的严重影响

我的错误是:

Traceback (most recent call last):
  File "c:\Users\wundermahn\Desktop\code\kmeans.py", line 25, in <module>
    plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
  File "C:\Python367-64\lib\site-packages\pandas\core\frame.py", line 2800, in __getitem__
    indexer = self.columns.get_loc(key)
  File "C:\Python367-64\lib\site-packages\pandas\core\indexes\base.py", line 2646, in get_loc
    return self._engine.get_loc(key)
  File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 116, in pandas._libs.index.IndexEngine.get_loc
TypeError: '(slice(None, None, None), 0)' is an invalid key
回溯(最近一次呼叫最后一次):
文件“c:\Users\wundermahn\Desktop\code\kmeans.py”,第25行,在
plt.散射(X_检验[:,0],X_检验[:,1],c=y_pred)
文件“C:\Python367-64\lib\site packages\pandas\core\frame.py”,第2800行,在\uuu getitem中__
indexer=self.columns.get_loc(键)
文件“C:\Python367-64\lib\site packages\pandas\core\index\base.py”,第2646行,在get\u loc中
返回发动机。获取位置(钥匙)
pandas.\u libs.index.IndexEngine.get\u loc中第111行的文件“pandas\\u libs\index.pyx”
pandas.\u libs.index.IndexEngine.get\u loc中第116行的文件“pandas\\u libs\index.pyx”
TypeError:“(片(无,无,无),0)”是无效键

我做错了什么?为什么我的切片
None
类型是在我清楚地将数据传递给它的时候?

plt.scatter
期望
x
y
。显然,数据帧与此函数的数组不同

如果您将
X
plt\u scatter
的输入转换为Numpy数组,它应该可以工作

import pandas as pd, seaborn as sns1
import matplotlib.pyplot as plt
from scipy import cluster
from sklearn.cluster import KMeans
from sklearn.model_selection import train_test_split
import numpy as np
df = pd.read_csv('divorce.csv', sep=';')
y = df['Class']
X = np.array(df.drop('Class', axis=1))

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

y_pred = KMeans(n_clusters=2, random_state=170).fit_predict(X_test)
plt.subplot(221)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.title("Guess")
plt.show()