【发布时间】:2020-01-14 07:31:54
【问题描述】:
我有一个包含 27 列用电量的 pandas 数据框,第一列表示两年内的日期和时间,其他列记录了两年内 26 所房屋的每小时用电量值。我正在做的是使用 k-means 进行聚类。每当我尝试在 x 轴上绘制日期和在 y 轴上绘制电力消耗值时,我都会遇到一个问题,即 x 和 y 必须具有相同的大小。我尝试重塑,但问题没有得到解决。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
import datetime
data_consumption2 = pd.read_excel(r"C:\Users\user\Desktop\Thesis\Tarek\Parent.xlsx", sheet_name="Consumption")
data_consumption2['Timestamp'] = pd.to_datetime(data_consumption2['Timestamp'], unit='s')
X=data_consumption2.iloc[: , 1:26].values
X=np.nan_to_num(X)
np.concatenate(X)
date=data_consumption2.iloc[: , 0].values
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
C = kmeans.cluster_centers_
plt.scatter(X, R , s=40, c= kmeans.labels_.astype(float), alpha=0.7)
plt.scatter(C[:,0] , C[:,1] , marker='*' , c='r', s=100)
我总是收到相同的错误消息,X 和 Y 必须有保存大小,尝试重塑您的数据。当我尝试重塑数据时它不起作用,因为日期列的大小总是小于其余列的大小。
【问题讨论】:
-
你能展示你的桌子的一部分吗?
-
是的,日期栏怎么能比其他栏短
-
我在上面的问题中添加了一张照片
-
实际上日期列更短,因为我将所有其余列“26”合并在一列“特征向量”中以将其传递给 k-means 算法跨度>
-
日期列的大小实际上是相同的“16960 行”,但是由于我将其余列收集在一列中,因此日期列变得更短
标签: python python-3.x pandas cluster-analysis