[파이썬_엑셀][7. 엑셀 값계산(Pandas)/ 입력 및 덮어쓰기(Openpyxl)-블로그 요약]
파이썬을 통해서 엑셀파일에 값을 Pandas를 통해서 값을 계산하고 Pandas의 형태의 자료를
Openpyxl로 변경하여 엑셀에 입력하고 덮어쓰는 방법에 대해서 설명함.
1. 불러올 엑셀 파일을 Pandas로 편집해서 같은 엑셀파일에 입력
2. 불러올 파일에 덮어쓰기
[파이썬_엑셀]7. 엑셀값 계산(Pandas)/입력 및 덮어쓰기(Openpyxl)
두번째 블로그에서 Openpyxl을 가지고 엑셀에 값을 입력하는 방법에 대해서 진행했습니다.
이번에는 Pandas로 값을 불러와서 엑셀에 입력하는 방법에 대해서 알아 보겠습니다.
이번에 만들어볼 파일의 형태는 하기와 같습니다.
1. 불러올 파일 위치 지정하기: 실행파일과 동일한 위치에 있는 파일로 진행
2. 엑셀파일을 불러오고 신규 시트를 만들기
3. Pandas를 이용해서 값을 불러오기
4. 새로운 내용의 항목을 추가하고 저장하기
입력을 완료한 후에는 불러올 파일에 덮어쓰기로 진행할 예정입니다.
Formal한 방식으로 공부하기 보다는, 구글에 검색해서 찾아보고 해보는 방식으로 공부를 했습니다.
내용은 굉장히 주관적이고 전문적으로 공부를 하신분들이 보기에 굉장이 부족한점이 있으니,
참조 부탁드립니다.
1. 불러올 파일 위치 지정하기: 실행파일과 동일한 위치에 있는 파일로 진행
우선 Pandas를 이용해서 값을 불러오기 전에 몇 가지 사전 작업을 진행하겠습니다.
불러올 엑셀 파일이 있는 폴더 안에 파이썬 실행파일을 만들고 저장합니다.
위치를 지정하는 함수를 불러와서 위치를 지정합니다.
저의 경우에는 폴더위치와 파일명을 나누어서 작성하였습니다.
input_save = 폴더 위치 / input_name = 파일명
[파이썬 실행화면]
[엑셀 파일]
1. Sheet = 2개의 시트를 작성
2. 'Before'시트의 파일 내용
2. 엑셀파일을 불러오고 신규 시트를 만들기
불러올 엑셀파일의 위치를 지정하였습니다.
이번에는 엑셀파일을 불러오고 해당 엑셀 파일안에 신규 시트를 작성하겠습니다.
신규시트는 기존시트에 작성되어 있는 내용을 바탕으로 수정하여 신규시트에 해당내용을 기입을 할 예정입니다.
[잠깐만!!]
1. sheet_list = wb.sheetnames
: Pandas를 이용하여 값을 불러올 때, 시트의 이름을 대신하여 사용하기 위하여 진행
[sheet_list = wb.seetnames 결과]
sheet_list[0] = Before
sheet_list[1] = After
불러온 엑셀파일안에서 "result"라는 시트를 생성하고, 해당 시트를 "result"로 명명하겠습니다.
3. Pandas를 이용해서 값을 불러오기
Pandas를 이용해서 값을 불러오고, 불러온 데이터의 첫번쨰 행의 내용을 확인합니다.
* sheet_name=sheet_list[0]를 사용해서 'Before'시트를 불러옴.
["sheet1의 내용을 Pandas로 변경한 내용]
["sheet1의 첫번째 행의 제목을 확인]
4. 새로운 내용의 항목을 추가하고 저장하기
Pandas를 이용해서 불러온 값을 이용하여 계산하고 결과값을 신규시트에 추가합니다.
이번에 제가 계산을 하고하 하는 부분은 위에서 불러온 표에서 "QTY"와 "Cost/QTY"을 불러와서 총금액을 계산을 할 예정입니다.
1) Pandas 총금액이라는 신규 열을 추가하기
-. sheet1.insert(A, B, C)에서 A는 추가할 위치, B추가할 열의 제목, C는 항목의 내용입니다.
2) 두개의 열을 계산하기
-. iterrows를 통해서 각각의 행의 항목을 불러와서 곱합니다.
[잠깐만!!]
1. iterrows는 무엇일까?
: 해당 함수를 pansdas로 이용하여 변형한 표를 불러 올수 있게 해준다.
2. iterrows는 어떤방식으로 데이터를 표현하는가?
[엑셀 내용]
[sheet1_new의 iterrows()를 전체 표시] - 내용이 너무 길어서 첫번째 결과만 표시
--> (Index, 행내용) 이런방식으로 도출됨을 알 수 있음.
[sheet1_new의 iterrows()를 i와 row 구분하여 표시] - 내용이 너무 길어서 첫번째 결과만 표시
3) Pandas를 통해서 계산한 파일을 Openpyxl을 통해서 입력할 수 있도록 변경함.
-. 해당 라이브러리와 함수를 사용하면, Pandas의 데이터 형태가 리스트 형태로 변경됨.
4) 리스트 형태의 값을 openpxyl을 사용하여 엑셀시트에 입력하고 저장하기
[잠깐만!!] - 위의 for문의 세부 설명
[예로 만든 표]
1) 1개의 for문으로 aa의 표를 분활 하기
2) 2개의 for문으로 aa의 표를 좀 더분활 하기
--> i = 열의 위치 / j = 행의 위치 / value = 값
5. 결과
*** Your memories make your destiny ***
'[파이썬] > [파이썬]엑셀' 카테고리의 다른 글
[파이썬_엑셀]8-2. Pandas 데이터를 엑셀에서 입력과 표시형식 변경 (0) | 2022.06.25 |
---|---|
[파이썬_엑셀]8-1. 엑셀의 표시형식 변경(Openpyxl) (0) | 2022.06.22 |
[파이썬_엑셀]6-2. Line(라인)차트 Marker(마커) 종류 (0) | 2022.06.03 |
[파이썬_엑셀]6-1. 파이썬으로 엑셀차트 만들기(Openpyxl) (3) | 2022.06.03 |
[파이썬_엑셀]5-4. iloc vs loc 차이점 & iat vs at 차이점 (0) | 2022.05.10 |
댓글