파이썬 리스트 구조에 자료 삽입하는 방법
조회수 897회
두 개의 CSV 자료가 있는데, 하나는 좌표 X,Y축 자료 다른 하나는 속한 그룹이 어디인지를 나타내는 자료 입니다. 자료의 형태는 아래와 같습니다.
#좌표 CSV
x,y
126.9604, 37.55781
126.9729, 27.56278
126.9734, 37.56292
126.9797, 37.56395
126.8711, 37.56713
126.9934, 37.55459
126.9934, 37.55459
126.6453, 37.45654
126.9875, 37.45642
#그룹 넘버 좌표 CSV
1
1
1
2
2
2
2
3
3
해당 자료를 통해 그룹 넘버가 같은 좌표는 같은 리스트에 포함되게 만들고 싶습니다. 예를 들면아래와 같습니다
[{126.9604, 37.55781},{126.9729, 27.56278},{126.9734, 37.56292}] #1번 그룹
[{126.9797, 37.56395},{126.8711, 37.56713},{126.9934, 37.55459},{126.9934, 37.55459}] #2번 그룹
[{126.6453, 37.45654}, {126.9875, 37.45642}] #3번 그룹
어떻게 작성해야 그룹 넘버를 반영할 수 있을까요? 부탁드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
hash(python에선 dictionary)를 쓰면 좋을 것 같네요.
csv를 읽는 방법은 이미 알고 계시다고 생각해, 따로 설명하진 않겠습니다. 그룹 넘버를 key로, key의 value는 좌표값을 저장하는 리스트로 형태로 하면 될 듯합니다.
coordinates = [ [126.9604, 37.55781], [126.9729, 27.56278], [126.9734, 37.56292], [126.9797, 37.56395], [126.8711, 37.56713], [126.9934, 37.55459], [126.9934, 37.55459], [126.6453, 37.45654], [126.9875, 37.45642] ] group_numbers= [ 1, 1, 1, 2, 2, 2, 2, 3, 3 ] answer = {} for group_number, coord in zip(group_numbers, coordinates): try: answer[group_number].append(coord) except KeyError: answer[group_number] = [coord] print(answer)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력