Python 获取有关数组的错误的长度必须相同

Python 获取有关数组的错误的长度必须相同,python,python-3.x,scikit-learn,k-means,Python,Python 3.x,Scikit Learn,K Means,我正在将数据从CSV拉入DF,并运行下面的代码…获取此错误: # Import the necessary packages from sklearn.pipeline import make_pipeline from sklearn.preprocessing import Normalizer from sklearn.cluster import KMeans # Define a normalizer normalizer = Normalizer() # Fit and trans

我正在将数据从CSV拉入DF,并运行下面的代码…获取此错误:

# Import the necessary packages
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import Normalizer
from sklearn.cluster import KMeans
# Define a normalizer
normalizer = Normalizer()

# Fit and transform
norm_movements = normalizer.fit_transform(dfMod) 


# Create Kmeans model
kmeans = KMeans(n_clusters = 10,max_iter = 1000)
# Make a pipeline chaining normalizer and kmeans
pipeline = make_pipeline(normalizer,kmeans)
# Fit pipeline to daily stock movements
pipeline.fit(dfMod)
labels = pipeline.predict(dfMod)


print(len(labels), len(dfMod)) 


df1 = pd.DataFrame({'labels':labels,'dfMod':list(dfMod)}).sort_values(by=['labels'],axis = 0)


# now...with PCA reduction
# Define a normalizer
normalizer = Normalizer()
# Reduce the data
reduced_data = PCA(n_components = 2)
# Create Kmeans model
kmeans = KMeans(n_clusters = 10,max_iter = 1000)
# Make a pipeline chaining normalizer, pca and kmeans
pipeline = make_pipeline(normalizer,reduced_data,kmeans)
# Fit pipeline to daily stock movements
pipeline.fit(dfMod)
# Prediction
labels = pipeline.predict(dfMod)
# Create dataframe to store companies and predicted labels
df2 = pd.DataFrame({'labels':labels,'dfMod':list(dfMod.keys())}).sort_values(by=['labels'],axis = 0)
这行抛出错误

df1 = pd.DataFrame({'labels':labels,'dfMod':list(dfMod)}).sort_values(by=['labels'],axis = 0)
奇怪的是,这显示了50k和50k

print(len(labels), len(dfMod)) 
50000 50000

我是不是遗漏了什么?我怎样才能做到这一点?谢谢

你能准确地说出错误是什么吗?你能打印
标签.size
dfMod.size
?你看过每个标签的形状了吗?一个人可能有一个额外的维度。此外,如果dfMod是一个数据帧,则可以使用dfMod.values或dfMod.values.tolist()标记。谢谢