1. 하고 싶은 것


distortions = []

K = range(1,12)

for k in K:

    kmeanModel = KMeans(n_clusters = k).fit(service1_s1[['data']])

    kmeanModel.fit(service1_s1[['data']])

    distortions.append(sum(np.min(cdist(service1_s1[['data']], kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / service1_s1.shape[0])



이 코드에서, 

k를 12까지 돌리고 & bold 해놓은 service1_s1의 마지막 숫자를 1부터 75까지로 바꾸고 싶음.

그러니까

service1_s1일 때 k가 1~12 일때의 값 찾기

service1_s2일 때 k가 1~12 일때의 값 찾기

...

를 하고 싶어




2. 구현 결과(오류)


아까 갤에 글 올렸는데 그냥 먼저 짜오라고 해서 짜봤는데... 너무 허접해 미안


  

distortions = []

K = range(1, 12)  

  

for i in range(1, 75):

    for k in K:

        kmeanModel = KMeans(n_clusters = k).fit(service1_s[i][['data']])

        kmeanModel.fit(service1_s[i][['data']])

        distortions.append(sum(np.min(cdist(service1_s[i][['data']], kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / service1_s[i].shape[0])



라고 무식하게 짰는데 당연히 안됨 

오류는 IndexError: list index out of range 오류가 뜸...

이 경우에 어떻게 해야 할까? 검색 중인데 답이 없네...