무효 클릭 IP 추적 중...
파이썬/pandas

[판다스] 엑셀(excel) sheet별 데이터 이어 붙이는 방법

꼬예 2022. 8. 22.

 

 

우리가 사용할 엑셀 데이터가 아래와 같이 여러 sheet로 이루어진 데이터라고 해보겠습니다.

 

 

어떻게 sheet별 데이터의 값을 불러올 수 있을까요?

 

그 전에 익숙한 방식으로 해당 엑셀파일을 한번 읽어 보도록 하겠습니다.

 

 

보시는것처럼 table 전용 데이터가 아니다 보니, 지저분한 형태로 출력이 됩니다.

 

실제 사용을 위해선 데이터 정제 우선되어야 겠지만, 이번 포스팅의 주제는 여러 sheet의 값들을 이어 붙히는 것임으로 일단은 불편하더라도 그냥 지나가도록 합시다.

 

읽어온 데이터를보면 제일 첫번째 sheet2006년도의 데이터를 읽어왔는데요.

이는 read_excel 함수가 디폴트로 제일 첫번째 sheet를 읽도록 세팅 되어있기 때문입니다.

 

그렇다면 다른 년도 sheet를 불러오려면 어떻게 할까요?

 

1) 특정 sheet읽기

sheet_name인자를 이용하면 됩니다.

아래와 같이 sheet_name'2009년'을 넣으면 2009년 데이터를 불러 올 수 있습니다.

 

 

이때  sheet명과 조금만 글자가 달라도 인식을 하지 못하니 글짜가 정확하게 일치하는지 확인할 필요가 있습니다.

 

그렇다면 여러 sheet를 한번에  읽고 싶다면 어떻게할까요?

 

2) 여러 sheet 한번에 읽기

각 sheet이름의 규칙을 발견하고, for loop을 이용하면 됩니다.

 

우리 데이터는 2006년부터 2020년까지 데이터이고 sheet name각 년도로 구성되어있습니다.

 

즉, 아래와같은 방식으로 구현을 하면 for loop을 돌면서 각 sheet데이터를 읽어 올 수 있겠죠.

 

 

문제는 읽은 데이터를 어떻게 합치는가인데요.

 

3) 읽어온 데이터 이어 붙히기(합치기)

 

 

읽은 데이터를 리스트에 하나씩 차곡 차곡 쌓는 식으로 진행 하면됩니다.(for문을 이용해 데이터프레임 담는다.)

 

그렇게 담은 리스트 데이터를 concat을 통해 최종적으로 합쳐줍니다.

 

 

appended_data를 출력해보면 아래와 같이 잘 합쳐진걸 알 수 있습니다.

 

output:

 

 

여기까지 하고 난 뒤 여러분의 입맛에 맞게 해당 데이터를 정제 해주면 됩니다.

 

저는 임의로 refine_data라는 함수를 제작하였고 이를 통해 깔끔하게 데이터를 정리해보았습니다.

 

 

output:

 

 

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글