티스토리 뷰

반응형

0. 지난화에서 엑셀(Excel) 데이터를 판다스(pandas)를 통해서 읽어보았다~

   그럼 쓰는건?

 

지난화에서는 pandas를 통해 read_excel 함수를 통해서, 엑셀에 있는 데이터를 읽어 보았습니다. 그렇다면, 쓰는 것도 가능하지 않을까요? 이번 포스트에서 엑셀에 쓰는 방법에 대해서도 알아보겠습니다. 이번에도 pandas를 통해 쓰는 방법에 대해서 알아보도록 하죠~

 

 

https://dataleader.tistory.com/20

 

[파이썬(Python) 이야기 1화] 파이썬에서 엑셀(Excel) 데이터 불러오기

0. 파이썬에서 엑셀을 불러오기 위해서는 어떻게 해야할까? 데이터 분석을 하기위해서, 다양한 작업을 해야하지만, 그 중에서 자주 반복적으로 접하게 되는 부분이 엑셀을 불러오는 일입니다.

dataleader.tistory.com

 

1. 실습 - 성적을 하나더 입력해 보자~!

 

지난화에 우리는 엑셀에 있는 성적데이터를 읽어보았습니다. 이번에는 데이터를 읽은 후에 해당데이터에서 한 컬럼을 추가해서 저장해 보도록 하겠습니다. 

 

자 그럼 지난번 소스 코드를 한번 다시 살펴보도록 하죠~

 

[소스코드]

 

import pandas


dataframeXlsx = pandas.read_excel("C:/Users/ryuje/Desktop/test.xlsx", sheet_name="Sheet1")
print(dataframeXlsx)

 

이제 dataframeXlsx에 데이터가 추가되어 있음을 확인할 수 있습니다. 

 

하나의 컬럼을 추가해 주어야 하는데, dataframeXlsx는 세 가지의 열(row, 이름, 점수, 과목)를 가지고 있습니다.  그렇다면, 각 열에 맞는 데이터를 생성해서 하나의 컬럼(column)을 추가해 주어야 합니다. 컬럼을 어떻게 해야 생성할 수 있을까요? 열을 추가할 경우에는 append 함수를 이용하면 간단하게 해결할 수 있습니다. 그럼 수정된 코드를 확인해 볼까요?

 

[소스코드]

 

import pandas


dataframeXlsx = pandas.read_excel("C:/Users/ryuje/Desktop/test.xlsx", sheet_name="Sheet1")

dataframeXlsx = dataframeXlsx.append({'이름':'선조', '점수':'40','과목':'불어'}, ignore_index=True) #열 추가
print(dataframeXlsx)

 

 

선조가 추가된 것을 확인해 볼 수 있습니다. 

 

여기서 잠깐!!

그렇다면 복수의 데이터를 연속해서 입력을 해야할 경우은 어떻게 해야할 까요? 일일이 이렇게 한줄 코드를 작성해서 추가하는 방법이 가장 효과적인 방법일 까요?  데이터 프레임에 자료를 연속해 입력할 경우, 데이터프레임을 하나 더 생성해 결합하거나 아래와 같이 추가하는 방법이 있습니다. 물론 아래의 코드가 완벽하지는 않지만, 참고가 될 수 있도록 코드를 추가하니 관련해 활용하시면 좋을 것 같습니다.(아래 코드는 Dictionary 형식을 통해 데이터를 데이터프레임(dataframe) 안에 입력하는 방법입니다.)

 

[소스코드]

 

import pandas

dataframeXlsx = pandas.read_excel("C:/Users/ryuje/Desktop/test.xlsx", sheet_name="Sheet1")
dataframeXlsx = dataframeXlsx.append({'이름':'선조', '점수':'40','과목':'불어'}, ignore_index=True) #열 추가


add_dic = {'이름':'하루끼', '점수':'70','과목':'국어'}

for i in range(0, len(dataframeXlsx.index)) :
dataframeXlsx = dataframeXlsx.append(add_dic, ignore_index=True)

print(dataframeXlsx)

 

2. 데이터프레임의 엑셀출력

 

자. 이제 데이터 프레임을 수정해 보는 것을 공부해보았으니, 마지막으로 데이터프레임을 엑셀에 출력해 보도록 하겠습니다. 엑셀에 출력하는 코드는 pandas를 활용하면 매우 쉽습니다. to_excel로 손쉽게 데이터를 엑셀로 옮길 수 있습니다. 

 

[소스코드]

 

import pandas

dataframeXlsx = pandas.read_excel('C:/Users/ryuje/Desktop/test.xlsx', sheet_name='Sheet1')
dataframeXlsx = dataframeXlsx.append({'이름':'선조', '점수':40,'과목':'불어'}, ignore_index=True) #열 추가

dataframeXlsx.to_excel('C:/Users/ryuje/Desktop/test.xlsx', sheet_name="Sheet1")

print('출력완료')

 

여기서 주의!!

위와 같이 코드를 작성할 경우 덮어쓰기로 작성이 됩니다. 이를 방지하기 위해서는 아래와 같이 수정해 원본과 수정본을 분리해 출력을 해 주어야 합니다. 이를 위해서는 pandas.ExcelWriter를 이용합니다. 

 

[소스코드]

import pandas

dataframeXlsx = pandas.read_excel('C:/Users/ryuje/Desktop/test.xlsx', sheet_name='Sheet1')
dataframeXlsxAppend = dataframeXlsx.append({'이름':'선조', '점수':40,'과목':'불어'}, ignore_index=True#열 추가

 

writer = pandas.ExcelWriter('C:/Users/ryuje/Desktop/test.xlsx', engine = 'xlsxwriter'

#xlsxwriter 라이브러리 설치 필요, 제 경우 openpyxl는 동작이 부자연스러웠습니다. 

dataframeXlsx.to_excel(writer, sheet_name="Sheet1")

dataframeXlsxAppend.to_excel(writer, sheet_name="Sheet2")

writer.save()

print('출력완료')

 

출력결과는 아래와 같이 나타납니다. 

 

 

3. 맺음말

 

이번 포스트에서는 pandas를 이용해서, 엑셀자료를 출력해 보았습니다. pandas가 참 열일하죠? 요즘 python에서 엑셀을 처리하는 다양한 도서들이 나타나고 있는데 이렇게 처리를 하면 정말 다양한 일을 할 수 있다는 생각이 드네요. 저도 더 많은 포스트를 통해 다양한 활용 방안들에 대해서 소개해 보도록 하겠습니다.  여러분들도 계속해서 많은 관심부탁드립니다. 

 

좋아요와 구독은 많은 힘이됩니다. !!

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함