파이썬에서 리스트 인덱스 범위 오류에 대해 질문 드립니다.

조회수 557회

안녕하세요. 아래와 같은 내용으로 중첩문을 짜다가 고민해봐도 어떻게 해결해야 할지 잘 모르겠어서 글 올립니다.

밑의 코드에서, service1_s1 일 때, k = 1~12 까지의 값 service1_s2 일 때, k = 1~12 까지의 값 ... service1_s74 일 떄, k = 1~12 까지의 값을 출력하게 만들고 싶습니다.

파이썬을 접한지 얼마 되지 않은 터라 배워본 대로 for문을 중첩하는 식으로 짜봤는데, IndexError: list index out of range 라는 오류가 발생합니다.

어느 부분을 고치면 해결할 수 있을까요? i 와 k를 불러오는 과정에서 뭔가 문제가 생긴 것 같은데, 여러번 구글링 했지만 어떤 식으로 고쳐야 할지 감이 안 와 질문 올립니다.
답변 부탁드립니다. 감사합니다.


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])
  • 몇번째 줄에서 index error가 발생하는 건가요? 아마 kmeanModel = KMeans(n_clusters = k).fit(service1_s[i][['data']]) 이부분에서 error 날 거 같은데 k때문에 error가 나오지는 않을 거 같고 i때문에 문제가 발생할 거 같습니다. service1_s가 어떻게 생긴지 모르지만 이 부분을 확인해 보세요. 알 수 없는 사용자 2020.7.27 09:08

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)