Python ValueError:无法将大小为2070的序列复制到维度为2的阵列轴 尝试执行k意味着通过将多个csv文件附加到时间序列数据来进行聚类。 但在误差以下 104 {2070}

Python ValueError:无法将大小为2070的序列复制到维度为2的阵列轴 尝试执行k意味着通过将多个csv文件附加到时间序列数据来进行聚类。 但在误差以下 104 {2070},python,pandas,numpy,append,series,Python,Pandas,Numpy,Append,Series,ValueError回溯(最近一次调用上次) 在里面 71公里=时间序列平均值(n_集群=集群计数,metric=“dtw”) 72 --->73标签=公里拟合度(mySeries) 拟合预测中的~\anaconda3\lib\site packages\tslearn\clustering\kmeans.py(self,X,y) 810每个样本所属集群的索引。 811 """ -->812 X=检查数组(X,allow\u nd=True,force\u all\u finit

ValueError回溯(最近一次调用上次) 在里面 71公里=时间序列平均值(n_集群=集群计数,metric=“dtw”) 72 --->73标签=公里拟合度(mySeries)

拟合预测中的~\anaconda3\lib\site packages\tslearn\clustering\kmeans.py(self,X,y) 810每个样本所属集群的索引。 811 """ -->812 X=检查数组(X,allow\u nd=True,force\u all\u finite='allow-nan') 813返回自适配(X,y)标签_ 814

检查数组中的~\anaconda3\lib\site packages\sklearn\utils\validation.py(数组、接受稀疏、接受大稀疏、数据类型、顺序、复制、强制所有有限、确保2d、允许nd、确保最小样本、确保最小特征、警告数据类型、估计器) 529 array=array.astype(dtype,casting=“不安全”,copy=False) 530其他: -->531数组=np.asarray(数组,顺序=order,dtype=dtype) 532除复杂警告外: 533 raise VALUERROR(“不支持复杂数据\n”

asarray中的~\AppData\Roaming\Python\Python37\site packages\numpy\core\u asarray.py(a,数据类型,顺序) 83 84 """ --->85返回数组(a,数据类型,副本=False,顺序=order) 86 87

ValueError:无法将大小为2070的序列复制到维度为2的阵列轴

我的代码是:

for filename in os.listdir(directory):
    if filename.endswith(".csv"):
        df = pd.read_csv(directory+filename)
mySeries.append(df)
        namesofMySeries.append(filename[:-2])
print(len(mySeries))
series_lengths = {len(series) for series in mySeries}
print(series_lengths)
cluster_count = math.ceil(math.sqrt(len(mySeries))) 

km = TimeSeriesKMeans(n_clusters=cluster_count, metric="dtw")

labels = km.fit_predict(mySeries)

看起来您有多维数组,通过查看错误消息,您可以打印数据帧头和数据帧的形状吗?此外,变量mySeries是数据帧的列表?因为这可能是问题所在,您可能需要先关注该列表,如果所有CSV文件共享同一架构结构,您可以我很容易就做这样的事情: \


打印形状和系列会在64数据类型中提供104{2070}小时的对象流:object[小时流量0 01-12-2020 20:00 400 1 01-12-2020 21:00 199 2 01-12-2020 22:00 92 3 01-12-2020 23:00 4 02-12-2020 00:00 2………2065 28-02-2021 17:00 1549 2066 28-02-2021 18:00 1586 2067 28-02-2021 19:00 1471[2070行x 2列],Hour Flow pd.concat()给出了形状(215280,),但它应该是{2070,2070}@GaganbirKaur我认为问题可能在于如何将数据帧保存到列表中。如果确保第一个数据帧具有所需的结构,并且所有文件保存相同的架构,则可以确保pd.concat()将这些数据帧堆叠到一个数据帧中
final_df = pd.concat(mySeries)