ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pandas] 파이썬 Pandas로 엑셀 파일 읽기와 쓰기
    Python/Pandas, Numpy 2023. 5. 4. 12:04
    반응형

     

    Pandas로 엑셀 파일 읽기와 쓰기


    판다스(Pandas)는 파이썬(Python)에서 표 형식의 데이터를 다룰 수 있는 강력한 패키지입니다. 그런데, 표 형식의 데이터라고 하면 우리는 흔히 사용하는 엑셀 스프레드시트 파일을 떠올리기 마련이지요. 과연 판다스로 이 파일들을 읽고 쓸 수 있을까요? 결론부터 말하자면 가능합니다.

     

     

    판다스로 파일 불러오기


    표 형식의 데이터는 확장자가 다르더라도 컴퓨터가 거의 비슷한 형식으로 파일을 편집합니다. 그래서, 별도의 프로그램으로 작성한 스프레드시트 파일이라고 해도 판다스에서는 파일 형식에 맞게 코드를 적어주면 손쉽게 불러와 이용할 수 있습니다. 만약에, 같은 폴더에 iris.csv 파일이 있고, 이걸 불러오려면 아래와 같이 쓰면 됩니다.

     

     

    iris.csv
    0.00MB

     

     

    # 패키지 불러오기
    import pandas as pd
    
    df = pd.read_csv('iris.csv')
    df.head()
      sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) target
    0 5.1 3.5 1.4 0.2 0
    1 4.9 3.0 1.4 0.2 0
    2 4.7 3.2 1.3 0.2 0
    3 4.6 3.1 1.5 0.2 0
    4 5.0 3.6 1.4 0.2 0

     

     

    참고로, 사용하려는 파일이 어떤 웹사이트에 업로드된 상태라면, 그 파일의 주소를 입력할 수도 있습니다. 예를 들어, 제 깃허브(Github)에 업로드한 iris.csv 파일을 이용하려면 https://raw.githubusercontent.com/boringariel/python/tmp/pandas_numpy/data/iris.csv 주소를 복사해서 위 코드의 iris.csv 대신 적어넣으면 됩니다.

     

     

    df = pd.read_csv('https://raw.githubusercontent.com/boringariel/python/tmp/pandas_numpy/data/iris.csv')
    df.head()
      sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) target
    0 5.1 3.5 1.4 0.2 0
    1 4.9 3.0 1.4 0.2 0
    2 4.7 3.2 1.3 0.2 0
    3 4.6 3.1 1.5 0.2 0
    4 5.0 3.6 1.4 0.2 0

     

     

    이렇게 불러온 csv 파일은, 임의의 변수에 저장해서 데이터를 이용하거나 편집할 수 있습니다. 예제에서는 이렇게 불러온 데이터를 df 라고 하는 변수에 저장했지만, 알아보기 편한 다른 이름을 지어서 저장하는 것을 권장드립니다.

     

     

    다양한 파일 불러오기 및 옵션 설정


    위와 같이 파일을 불러오는 코드는 csv 파일에 한해서만 동작하며, 만약 다른 파일이라면 아래와 같이 불러올 수 있습니다. 더욱 자세한 내용은 판다스 공식 홈페이지를 참조해 주시기 바랍니다.

     

     

    • 만약 tsv 파일이라면 → pd.read_csv('file.tsv', sep='\t')
    • 만약 xlsx 파일이라면 → pd.read_excel('file.xlsx')
    • 만약 위 예제의 iris.csv 파일을 클립보드에 복사(Ctrl+C)해둔 상태라면 → pd.read_clipboard(sep=',')

     

     

    만약 pd.read_csv() 등의 코드로 파일을 불러오려 한다면, 표의 형태에 따라 다양한 옵션을 부여할 수 있습니다. 자세한 내용은 아래 내용 또는 판다스 공식 홈페이지를 참조해 주시면 됩니다.

     

     

    • header=0: 0번째 행(row) 내용을 헤더(header, =열 이름(column name) )으로 설정한다.
    • index_col='열 이름': 특정 열(column)을 인덱스(index, 행 이름(row name) )로 설정한다.
    • seq='\s+': 표의 구분자를 \s+(길이가 일정하지 않은 공백)으로 설정한다.
    • skiprows=[1, 3]: 1, 3행을 빼고 읽어들인다.
    • na_values=['x']: x값을 NaN으로 치환한다.

     

     

    판다스로 편집한 파일 내보내기


    파일 불러오기와 비슷한 방법으로, 판다스로 편집한 파일을 다양한 형식으로 내보낼 수 있습니다. 파일을 내보낼 때는 읽기와 거의 같은 코드를 사용하는데, 이 때, df.to_csv(파일이름) 혹은 df.to_excel('파일이름.xlsx') 등의 코드를 이용합니다. 만약, 아까 불러온 iris.csv 파일을 엑셀 파일(xlsx)로 내보내고 싶다면, 아래 코드를 이용하면 됩니다.

     

     

    df.to_excel('iris.xlsx')

     

     

    이 코드도 불러오기와 마찬가지로 다양한 옵션을 적용할 수 있습니다. 자세한 내용은 아래 정리 또는 판다스 공식 홈페이지를 참고해 보시기 바랍니다.

     

     

    • seq='/': /기호가 데이터를 구분하는 구분자로 설정된다.
    • na_rep='x': NaN값이 x로 치환되어 저장된다.
    • index=False: 인덱스를 제외하고 저장한다. 기본값은 True
    • header=False: 헤더를 제외하고 저장한다. 기본값은 True

     

     

    참고로, 판다스는 파일을 불러올 때 별도의 인덱스 정보가 없으면 새로 만드는 특징이 있습니다. 그래서, 파일을 내보내기할 때는 불필요한 인덱스가 저장되지는 않았는지 확인해 주시는게 좋습니다.

    반응형

    댓글

문의: jwkang3929@naver.com