【发布时间】:2021-05-21 22:14:43
【问题描述】:
我试图将结果保存在 excel 中,但出现错误 - 'list' 对象没有属性 'to_excel'。 除了最后一行(保存结果)之外,我运行整个代码都没有问题。
你能帮我找出错误吗?谢谢
from collections import Counter
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from scipy.spatial import distance
df1=pd.read_csv("Clus_readinFile.csv", index_col="Site_ID")
df1.head(5)
# Standardization (z-score)
scaler = StandardScaler()
df_std = scaler.fit_transform(df1)
df_std
centroids_All = []
for cluster in range(1,15):
kmeans = KMeans(n_jobs = -1, n_clusters = cluster, init='k-means++')
kmeans.fit(df_std)
counts = dict(Counter(kmeans.labels_))
counts = pd.DataFrame.from_dict(counts, orient='index', columns=['Stores'])
centroids_deno = pd.DataFrame(scaler.inverse_transform(kmeans.cluster_centers_),columns= df1.columns)
centroids_deno['Stores'] = counts['Stores']
centroids_All.append(centroids_deno)
centroids_All.to_excel("centroidsAllResult.xlsx")
【问题讨论】:
-
centroids_All是一个列表。列表没有to_excel()函数。你真正想保存到excel什么?它应该是一个数据框 -
嗨,Pranav,是的,我想将其保存为数据框。我觉得我已经通过 pd.DataFrame 将其转换为数据框。我需要如何更改它?谢谢
-
centroids_deno是您的数据框。你在centroids_All上做to_excel()。 -
另外,请修正代码的缩进。 for 循环的内容必须缩进。请参阅formatting help 以获取有关如何使用代码围栏正确格式化代码的帮助。