我有一个包含3列的数据框:[city(String),weather_variable(String),variable_value(Float)]。 在对city和weather_variable的数据进行分区之后,我想对数据集应用kmeans。即kmeans将分别在weather_variable的所有城市组合上运行。我已经写了同样的代码,但是它很慢。有人可以帮助我优化它吗?
代码:
i=0
x = None
grouped = test.groupby(['city', 'weather_variable'])
kmeans = KMeans(n_clusters = 7)
for name, frame in grouped: #I want to avoid this for loop
kmeans.fit(frame.variable_value.reshape(-1, 1))
frame['cluster'] = kmeans.labels_
if i == 0:
x = frame
else:
x = x.append(frame)
i += 1
PS:我不能在这里共享数据。