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

2024-04-26 12:01:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将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)

奇怪的是,这显示了5万和5万

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

我是不是漏了什么?我怎样才能做到这一点?谢谢!!你知道吗


Tags: andfromimportmakelabelslenpipelinesklearn