15. pandas로 excel파일 읽고 / 쓰기
2018. 7. 9. 21:18
pandas_excel.py
불러올 엑셀파일 : mandoo_management.xlsx
저장된 엑셀파일 : result.xlsx
- 새로운 파이썬 파일을 만든다.
- 불러올 엑셀파일을 만들고, 해당 프로젝트(studying_pandas)에 mandoo_management.xlsx 엑셀파일을 저장하자(csv아님)
- 이제 파이썬에서 pandas모듈을 이용해 엑셀파일을 불러오고, 테스트로 출력까지 해보자.
- df = pd.read_excel('mandoo_management.xlsx', sheet_name='Sheet1')와 같이
Pandas -> DataFrame으로 불러오는데, pd.read_excel()함수를 사용하고, 인자에는 ('파일명', sheet_name='시트명')이 필요하다
*엑셀의 기본시트명은 Sheet1 이다.
- 불러온 것을 print(df) 으로 확인하려 했더니, install xlrd라는 어떠한 Excel support가 필요하다고 에러가 난다. - Settings > Project Interpreter > + > xlrd를 검색해서 설치하고, 다시 출력시켜보자.
확인해보았더니, 판다스에서는 첫row를 자동으로 칼럼명으로 인지한 것을 확인할 수 있다.
CSV를 다룰 때는,
읽을 때, 첫ROW를 제외하고
쓸때는 첫ROW를 따로 쓰고 나머지를 FOR문에서 썼다. - 첫row로 인지된 칼럼명row 중 하나의 칼럼을 출력시켜보자
- print( df['칼럼명'] ) - 출근시간 퇴근시간 칼럼을 이용하여, 근무시간 칼럼즈를 추가해보자
- df['근무시간'] = df['퇴근시간'] - df['출근시간']
마찬가지로, 시간당 만두생산 칼럼을 추가해보자.
- df['시간당 만두'] = df['만두생산'] / df['근무시간'] - 이제 시간당 만두를 잘만드는 사람의 순위를 메겨보여주도록 해보자.
특정 칼럼을 기준으로 df를 새롭게 위치시켜 보여준다.
df.sort_values()함수로 정렬을 하는데,
by=['칼럼명'] -> 해당칼럼을 기준으로 정렬한다.
ascending=[False] -> 오름차순을 False로 두어, 내림차순으로 정렬된다.
- df = df.sort_values(by=['시간당 만두'], ascending=[False])
기준칼럼이 똑같은 경우에는, 2순위의 칼럼을 지정할 수 있다. 이 때, ascending인자에도 False로 내림차순 만들어줘야한다.
위에서는 시간당만두가 100.0 으로 같은 조재성과 안철수 중 근무시간은 안철수가 더 많다.
- df = df.sort_values(by=['시간당 만두' , '근무시간' ], ascending=[False, False]) - DataFrame이 완성되었다면, 엑셀로 저장할 수 있다. 마찬가지로 시트명을 같이 명시해줘야한다.
- df.to_excel('result.xlsx', sheet_name='Sheet1)
바로 실행시키면 아래와 같이 openpyxl모듈이 없다고 뜬다. 마찬가지로 설치해주면된다.
결론적으로, 기본 엑셀파일이 -> pandas를 거쳐 ->
계산식을 통한 새로운 칼럼 추가 & sorting(1순위>2순위)이 되어서 저장
pandas에서 엑셀파일을
열때는--> xlrd
저장할 때는--> openpyxl
모듈이 필요했다.
'빅데이터 관련 프로그래밍 > Python3 기초 및 업무자동화' 카테고리의 다른 글
17. 웹스크래핑 시작하기 - HTML 이해 / CSS from bootstrap (0) | 2018.12.30 |
---|---|
16. pandas를 이용해 차트그리기 (1) | 2018.07.11 |
14. 파이참에서 pandas 설치 및 기본 사용해보기 (0) | 2018.07.09 |
업무 자동화 최종정리 : CSV모듈로 CSV읽고 -> 클래스모듈화를 통한 인스턴스생성 및 계산 칼럼추가 -> CSV 쓰기 + MS WORD 문서화까지(.docx) (0) | 2018.07.07 |
13. 기존 프로젝트를 python-docx로 문서화해보기 (0) | 2018.07.07 |