[Pandas] 데이터프레임 엑셀(xlsx) 저장, 불러오기

반응형
    반응형

    파이썬으로 만든 데이터프레임을 엑셀 저장하고 불러오는 방법을 소개하겠습니다.
    한 시트에 저장하는 방법이 있고 여러 시트에 저장하는 방법이 있습니다. 

    사실상 여러 시트에 저장하는 방식으로 모든 것을 할 수 있지만 코딩은 최대한 적게 쓰고 많은 일을 하는 것이 좋으므로 

    너무 간단해서 허무할 수도 있지만 한 시트에 저장하는 방법을 따로 떼서 알려드리겠습니다. 

     

     

    한 시트에 엑셀 저장하기

    df = pd.DataFrame({'alpha' : ['a','b','c','d','e'],'beta':['A','B','C','D','E']})

    다음과 같은 데이터 프레임을 엑셀로 저장하는 건 간단합니다. to_excel() 메쏘드를 사용하면 됩니다.

    df.to_excel('경로'/'파일이름.xlsx')

    엑셀로 저장이 되었습니다. 인덱스를 없애고 싶다면 index=False를 붙여줍니다.

    df.to_excel('경로'/'파일이름.xlsx',index=False)

     

    여러 시트로 엑셀 저장하기

    여러 시트로 저장하기 위해 단순하게 to_excel() 메쏘드를 쓰면 되지가 않습니다. 무조건 맨 마지막에 명령한 것으로 덮어씌게 되어 있습니다. 여러 시트로 저장하기 위해서는 with pd.ExcelWriter() 를 씁니다.

    df 의 첫번째 행과 두번째 행을 각각 다른 시트로 저장해 보겠습니다.

    파일이름을 test.xlsx로 하겠습니다.

    with pd.ExcelWriter('test.xlsx') as writer:
        df[df.alpha == 'a'].to_excel(writer, sheet_name='a')
        df[df.alpha == 'b'].to_excel(writer, sheet_name='b')

     

    위와 같이 시트 a 와 b에 저장이 됩니다.  

     

     

    엑셀 파일 불러오기

    이번엔 엑셀 파일을 불러오겠습니다. test.xlsx를 불러오겠습니다. 

    'test.xlsx' 자리에 파일경로를 입력하면 됩니다.

    저는 실행하고 있는 쥬피터 파일과 같은 폴더에 저장을 해서 파일이름만 입력을 했습니다. 

    x = pd.read_excel('test.xlsx')

     

    인덱스를 제거하지 않고 저장해서 Unnamed:0 이 생겼네요 ㅜ 

    아무튼 일단 봐야 할것은 따로 시트를 지정하지 않으면 첫번째 시트의 내용만 불러들이게 되는데

    첫번째 시트가 디폴트 값이라서 그렇습니다.

    원하는 시트를 불러오려면 다음과 같이 합니다.

    x = pd.read_excel('test.xlsx',sheet_name='b')

    파일경로만 잘 알고 있다면 불러오는 것은 어렵지 않습니다.

    파일이름 목록 가져오는 방법은 예전에 포스팅을 해놨습니다.

    궁금하시면 참고하시기 바랍니다.

     

     

    관련 포스팅

    [Python/기초] - [Python]폴더 안에 파일 이름 목록 가져오기

    [Python/Pandas] - [Pandas]DataFrame column 추가,삭제,순서변경

    [Python/Pandas] - [Pandas] DataFrame 살펴보기(생성,데이터파악)

    댓글

    Designed by JB FACTORY

    ....