본문 바로가기

꿀팁!

Pandas를 이용한 데이터 정리

import pandas as pd
import numpy as np
import openpyxl
import matplotlib as mpl 
import matplotlib.pyplot as plt

in_path = r'C:\Users\USER\Desktop\nam\work\excel_hi\park1\test.xlsx'
out_path=r'C:\Users\USER\Desktop\nam\work\excel_hi\park1\test_out.xlsx'
df=pd.read_excel(in_path,usecols=[1,2,5,6])

df['접수일자'] = pd.DatetimeIndex(df['접수일자']).month
df['접수시간'] = pd.DatetimeIndex(df['접수시간']).hour
df=df.groupby([df['접수일자'],df['접수시간']]).agg(['count'])

df.to_excel(out_path,sheet_name="둠둠")
with pd.ExcelWriter(out_path, mode='a') as writer:
        writer.book = openpyxl.load_workbook(out_path)
        df.to_excel(writer, sheet_name="www")

근무지에서 복무하다보니 몇만건의 데이터를 정리해 통계를 내야 하는일이 많아서 만들었고(안만들었으면 직접 하나하나 갯수를 합해야 했다.) 그냥 삭제하기에는 아까워서 이렇게 남겼다.

 

path에는 각각 데이터가있는 엑셀파일과 결과로 만들어줄 엑셀파일의 경로

read excel을 통해 읽고 usecols를 통해 몇번째 열을 읽을지 선택

데이터를 각각 가공해서 groupby를 통해 묶어주고 agg를 통해 갯수만 세어준다.

 

df.to_excel을 통해 그냥 엑셀을 결과로 만들수있고

기억은 가물가물하지만 아마 with문부터 시작된 엑셀쓰기는 기존엑셀에 추가로 시트를 추가할때 만들어줬던것같다.(덮어쓰기 기능)

 

시간이 많았다면 멋있게 짰겠지만 몇시간내에 해야되기에 허접하지만 결과만 나오도록 짠것같다ㅋㅋ;

 

결과로 나온 excel의 모습 접수일자는 월단위이고 접수시간은 0시부터 0시 59분, 1시부터 1시59분까지의 범위이다.

급하게 하느라 같은 결과값이 두개씩 나오는데 usecols에서 사건종별이나 관할관서 둘중하나를 지워주면 결과는 하나로 나올것같다.(아마 전에 관서별로 발생건수를 구해서 넣어두고 잊은듯하다)

'꿀팁!' 카테고리의 다른 글

Flask-RESTX Swagger를 이용한 문서화  (0) 2022.02.28
flask + rest api 공부  (0) 2022.02.28
ELK 공부 4  (2) 2022.01.24
ELK 공부3  (0) 2022.01.20
ELK공부2(Docker-Compose를 이용한 구축)  (0) 2022.01.11