본문 바로가기
Python/Pandas

Pandas 표 데이터 입/출력 및 데이터 확인

by 찐남 2021. 8. 13.
본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다.
본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다.

 

Python은 pandas 라이브러리를 활용해서 외부 데이터를 불러오고, 데이터 분석을 수행한 후에, 다시 외부 데이터로 내보낼 수 있습니다. Python 내부로 불러들일 때에는 read_* 구문을 활용하고, 외부로 내보낼 때에는 to_* 구문을 활용합니다. 실습을 위해 프로그램 작성 시 가장 많이 활용되는 데이터 중의 하나인 titanic 승객 데이터를 사용하겠습니다.

 

우선, 실습 데이터를 다운로드하세요.

titanic.csv
0.06MB

 

CSV 파일로 제공되는 titanic 승객 데이터를 분석해 보도록 하겠습니다.

 


 

 



 

1. 파일 불러오기

 

외부 파일을 불러올 때는 pandas 라이브러리에 있는 read_csv 함수를 활용할 수 있습니다.

 

import pandas as pd
titanic = pd.read_csv("D:/python_exer/titanic.csv")
print(titanic)

 

pandas는 csv 파일로 저장된 데이터를 pandas DataFrame으로 읽어오는 read_csv() 함수를 제공합니다. pandas는 기본적으로 다양한 파일 형식 또는 데이터 소스(csv, excel, sql, json, parquet, …)를 지원하며, 각각 접두사 read_*로 표현됩니다. 데이터를 읽은 후에는 잘 불러왔는지 항상 확인해야 합니다. DataFrame을 표시할 때 기본적으로 처음과 마지막 5개 행이 표시됩니다. 

 

 

pandas DataFrame의 처음 8개 행을 보고 싶으면 head() 메서드를 사용하면 됩니다.

 

print(titanic.head(8))

 

 

DataFrame의 처음 N 행을 보려면 필요한 행 수(이 경우 8)를 인수로 사용하여 head() 메서드를 사용합니다. 만약 마지막 N 행을 보고 싶으면 tail() 메서드를 사용하면 됩니다. 예를 들어, titanic.tail(10)은 DataFrame의 마지막 10개 행을 반환합니다. 

 

print(titanic.tail(10))

 

 

pandas dtypes 속성을 요청하여 pandas가 각 열 데이터 유형을 해석하는 방법을 확인할 수 있습니다.

 

print(titanic.dtypes)

 

 

각 column에 대해 사용된 데이터 유형이 나열됩니다. 이 DataFrame의 데이터 유형은 정수(int64), 부동 소수점(float64) 및 문자열(객체)입니다.

 

(NOTE: dtypes를 요청할 때 괄호는 사용하지 않습니다! dtypes는 DataFrame 및 Series의 속성입니다. DataFrame 또는 Series의 속성에는 괄호가 필요하지 않습니다. 속성은 DataFrame/Series의 특성을 나타냅니다. 반면에 메서드(괄호 필요)는 2021.08.12 - [Python/Pandas 익히기] - Pandas가 처리하는 데이터 종류에서 소개한 DataFrame/Series로 작업을 수행합니다.)

 

 

 



 

 

2. 파일 내보내기

 

누군가 엑셀 파일 형태로 타이타닉 데이터를 요청했습니다. 엑셀 형태로 내보내기 위해서는 openpyxl 패키지가 설치되어 있어야 합니다(윈도우 + R -> 명령 프롬프트에서 cmd 입력 -> pip install openpyxl).

 

 

아래와 같이 수행하면 엑셀 파일이 생성됩니다. 

 

import openpyxl
titanic.to_exel("D:/python_exer/titanic.xlsx", sheet_name = "passengers", index = False)

 

read_* 함수는 pandas에 데이터를 읽는 데 사용되는 반면 to_* 메서드는 데이터를 내보내는 데 사용됩니다. to_excel() 메서드는 데이터를 엑셀 파일로 저장합니다. 여기의 예에서 sheet_name은 기본 Sheet1 대신 승객으로 명명됩니다. index=False를 설정하면 행 인덱스 레이블이 스프레드시트에 저장되지 않습니다. 

 

동등한 읽기 함수인 read_excel()은 데이터를 DataFrame에 다시 로드합니다.

 

titanic1 = pd.read_exel("D:/python_exer/titanic.xlsx", sheet_name = "passengers")
print(titanic1)

 

 

 

3. 기초 요약 통계량 산출

 

DataFrame의 요약 통계량을 산출할 수도 있습니다.

 

titanic.info()

 

 

info() 메서드는 DataFrame에 대한 기술 정보를 제공하므로 출력되는 내용에 대해 자세히 설명하겠습니다. 

 

  • titanic은 DataFrame입니다.
  • 891개의 엔트리, 즉 891개의 행이 있습니다.
  • 각 row에는 0에서 890 사이의 값을 가진 행 레이블(인덱스라고도 함)이 있습니다.
  • 테이블에는 12개의 column이 있습니다. 대부분의 column에는 각 row에 대한 값이 있습니다(891개 값은 모두 null이 아님). 일부 column에는 누락된 값과 891개 미만의 null이 아닌 값이 있습니다. 
  • Name, Sex, Cabin 및 Embarked column은 텍스트 데이터(문자열, 일명 개체)로 구성됩니다. 다른 column은 일부는 정수(일명 int)이고 나머지는 실수(일명 float)인 숫자 데이터입니다. 
  • 다른 column의 데이터 종류(문자, 정수 등)는 dtypes를 나열하여 요약됩니다.
  • DataFrame을 유지하는 데 사용되는 대략적인 RAM 크기도 제공됩니다.

 

4. 기억하자!!

 

  • 다양한 파일 형식이나 데이터 소스에서 pandas로 데이터를 가져오는 것은 read_* 함수에서 지원됩니다. 
  • pandas에서 데이터를 내보내는 것은 다른 to_* 메서드에 의해 제공됩니다.
  • head/tail/info 메서드와 dtypes 속성은 데이터를 첫 번째로 확인하는 데에 매우 편리합니다.

 

 

 

반응형

댓글