파이썬으로 매일매일 지정된 데이터를 수집하는 프로그램을 만드는 경우가 있습니다.

이때 수집한 데이터를 엑셀로 저장하게 되는데요.

판다스(pandas)라는 파이썬 라이브러리를 사용하면 이러한 데이터를 아주 쉽게 로컬에 저장할 수 있습니다.

 

그런데, 판다스로 파일명을 지정하게되면 매번 같은 엑셀 파일을 덮어쓰게됩니다.

알아서 백업을 미리미리 해놓지 않는다면, 몇일간 해놓은 작업을 나중에 돌아와서보면 마지막 1일치 정보만 있어서 속상하게 됩니다.

이런 것을 방지하려면 만드려는 엑셀 파일명을 현재 날짜로 하면 편리합니다.

파이썬 판다스 라이브러리 설치하기

파이썬에는 엄청나게 많은 라이브러리들이 있는데, 해당 라이브러리를 사용하려면 라이브러리를 다운 및 설치해야 합니다.

파이참 프로그램을 사용하면 편리하게 해결을 할 수 있는데요.

아직 파이참을 설치하지 않았다면 아래 파이참 설치에 대해서 한번 보는 것이 좋습니다.

 

2021.03.20 - [프로그래밍] - pycharm으로 파이썬 시작하기

 

pycharm으로 파이썬 시작하기

파이썬은 1989년에 발표된 프로그래밍 언어로 벌써 30살이 훌쩍 넘었습니다. 하지만 2021년 현재 머신러닝 등 ai 관련으로 더욱 활용도가 많아지고 있습니다. 학생들이 처음으로 접하는 코딩 언어

rich-informer.tistory.com

파이참 터미널을 이용해서 판다스 설치

1. pycharm 하단의 terminal 이란 곳을 클릭한다.

 

2. 커맨드 창에 pip install pandas 입력 후 엔터

 

이렇게 하면 자동으로 pandas가 설치가 된다.

이후 import pandas as pd 라고 사용하면 됩니다.

 

순서를 바꿔서, import pandas를 사용하면 아직 라이브러리가 설치되어 있지 않아서 붉은 줄이 생깁니다.

이곳을 마우스 우클릭하면 pandas 인스톨 메뉴가 뜹니다. 클릭하면 자동 설치가 됩니다.

파이썬 데이터를 판다스 엑셀로 저장하기

이 작업을 하려면 pandas 에 새로운 모듈이 하나 추가되어야 합니다.

이 상태로 하는 경우 에러가 발생하게 되며, 해당 에러의 원인은 openpyxl 패키지가 없다고 나옵니다.

이때도 판다스 설치와 마찬가지로 터미널로 가서 pip install openpyxl 이라고 해주면 됩니다.

그럼 이제 본격적으로 정보를 엑셀 파일로 보내는 방식에 대해서 이야기하겠습니다.

파이썬 결과 정보 엑셀로 익스포트 하기

results = ["a", "b", "c".....] 대량의 데이터가 이렇게 있다고 가정을 하겠습니다.

1. 판다스로 데이터 프레임화 하기

df=pd.DataFrame(results)

df는 변수명으로 원하는 것으로 해도 됩니다. 일반적으로 쓰이는 변수명은 df 즉 dataframe의 약자로 자주 쓰입니다.

 

그리고 pd의 경우 초기 판다스를 import 할때 as pd로 쓰면 pandas라고 길게 쓰지 않고 해당 판다스 기능을 pd라고 짧게 호출할 수 있습니다.

 

현재 results 안에 있는 데이터를 데이터 프레임화 하는 단계입니다.

2. 현재 날짜 받아오기

파이썬에서 현재 날짜를 알고 싶다면 datetime이라는 라이브러리 패키지를 추가해야 합니다.

터미널에서 pip install datetime 하거나 import datetime 한 다음에 마우스 우클릭으로 설치합니다.

 

filename = datetime.datetime.now()

이렇게하면 오늘 날짜를 불러서 filename에 저장을 하는데요. 이 상태로 끝나면 파일명으로 쓸 수 없습니다.

포맷과 시간을 문자열로 변환해주는 것이 필요합니다.

 

그러한 역할을 하는 것이 strftime 이라는 함수입니다.

 

filename = datetime.datetime.now().strftime("%Y-%m-%d)

 

4자리의 연도와 월 그리고 날짜로(2021-3-22) 표시해줍니다.

3. 엑설 파일로 저장하기

df.to_excel(filename+".xlsx")

이렇게 하면 날짜 이름으로 된 파일로 데이터 프레임이 저장되어 만들어집니다.

모두 한번에 완성하면 이렇게 됩니다.

 

import pandas as pd
import datetime

results = ["a", "b", "c".....]
df=pd.DataFrame(results)
filename = datetime.datetime.now().strftime("%Y-%m-%d)
df.to_excel(filename+".xlsx")

 

단순히 엑셀로 데이터를 뽑아내는 것 이상의 능력을 가진 것이 바로 pandas라는 패키지 라이브러리인데요.

좀 더 복잡한 것들도 있으니 관련 가이드 문서를 잘 보시기 바랍니다.

+ Recent posts