본문 바로가기
공부 자료/머신러닝

파이썬으로 CSV 파일 합치기 (병합, pandas 활용)

by 푸르미로 2021. 8. 19.
반응형

제가 하고 있는 머신러닝과 관련된 연구에 있어서 특정 실험조건을 세팅하고 실험을 돌리면 accuracy 값들이 csv 파일로 생성됩니다. 머신러닝 특성상 동일조건의 실험에도 불구하고 accuracy가 다소 들쑥날쑥하기 때문에 보다 정밀한 값을 구하기 위하여 동일 조건으로 실험을 반복하여 평균값을 구할 필요가 있습니다.

 

코딩 초짜인 저는 이 상황에서

각각의 csv 파일을 열고, copy & paste 방식으로 값을 옮겨서 한곳에 모은 뒤 average 값을 구하는 정말 무식한 노가다 방식으로 연구하고 있었습니다.

 

'실험 조금만 하면 되는데, 굳이 이런걸 위해 코드를 짜야하나? 공부하고 코드작성 하는데 시간이 더 걸릴것 같다'고 변명하며 연구한지가 4~5개월이 되었고, 계속된 노가다 방식에 지쳐 안되겠다 싶었고 마침내 공부를 시작했습니다.

 

예전에 한번 찾아봤을때는 뭔가 어려워서 포기했었는데, 설명을 잘해주신 다른 블로거분들 덕분에 이번에는 생각보다 금방 해결했네요. 

 

(저는 컴퓨터 언어에 대해 전혀 모르는 상태에서 시작하였고, 머신러닝 연구를 위해 필요한것 들만 속성으로 배웠기 때문에 고수분들이 보기에는 웃기는 일이 될수 있겠지만, 혹시 저와 같은 상황속에 계신분들에게 도움이 되었으면 해서 작성합니다.)

 

 

 

목표

1. 각 CSV 파일의 값들을 하나의 파일로 병합한다

2. 병합할때, 각 값들을 가로로 붙인다. (열로 병합)

3. 병합된 값을 행을 기준으로 더한 뒤 평균값을 구한다. 

 

 

 

 

주요 내용은 나그네와 함께하는 블로그의 장삼님의 아래글을 참조하였습니다.

https://m.blog.naver.com/jangsam24/221389314127

 

파이썬으로 csv내용 합치기(pandas를 이용)

이전 포스팅에서 파이썬 모듈 csv를 이용하여 csv파일의 내용을 합쳐봤다. 이번엔 강력한 모듈 pandas 판다...

blog.naver.com

 

 

먼저 장삼님이 작성하신 코드를 그대로 따라하였고, 수정한 부분 위주로 설명드리겠습니다. 

 

 

1) allFile_list = glob.glob(os.path.join(input_file,'*')) 

   # 여기서 '*' 를 넣음으로써 해당 폴더안에 있는 모든 파일을 불러 올 수 있습니다.

2) dataCombine=(dataCombine.sum(axis=1))/3

   # dataCombine이란 이름으로 concat함수를 통해서 병합된 이후로부터는 pandas 문법을 사용하지 않고도 원하는 데이터값을 얻을 수 있습니다. 저는 합쳐진 행에 대한 평균값을 구하고 싶었습니다.

 

 

 

제가 지정한 경로폴더에는 다음과 같이 3개의 파일이 있었습니다

 

 

 

 

 

파일 하나를 열어보면 다음과 같이 50개의 accuracy값들이 세로로 저장되어있구요

 

아까 작성한 코드를 실행시키면 (python.main.py) 위와 같이 average라는 이름의 csv파일이 생성됩니다.

 

 

average파일을 열어보면, 제가 구하고자 했던 각 csv파일들의 평균값을 얻을 수 있습니다..

 

반응형

댓글