반응형

본 포스팅은 판다스의 공식 튜토리얼 문서(https://pandas.pydata.org/docs/getting_started/intro_tutorials/01_table_oriented.html)를 참고하여 학습한 내용을 정리하였다.

 

· 깃허브: https://github.com/PSLeon24/Research_python/blob/main/pandas/pandas_1.ipynb

 

판다스 라이브러리 import

먼저, 판다스 라이브러리를 사용하기 위해서는 import 해주는 과정이 필요하다.

흔히 pandas를 줄여서 'pd'라는 별칭(alias: as)을 사용해준다.

 

import pandas as pd

판다스는 어떤 종류의 데이터(자료)를 다룰까?

- What kind of data does pandas handle?

먼저, 판다스의 데이터 표의 표현 방식을 알아보고자 한다.

 

pandas data table representation

데이터프레임(DataFrame: df)

DataFrame은 다양한 유형의 데이터(문자, 정수, 실수, 범주형 데이터 등 포함)를 열에 저장할 수 있는 2차원 데이터 구조

판다스의 데이터프레임 구조는 흔히 우리가 이전에 학습한 2차원 배열과 거의 동일하다. 더 쉽게는 Microsoft 사의 EXCEL과 같은 형태라고 생각할 수 있다.

따라서 각각의 행(row)과 열(column)으로 이루어져 있음을 알 수 있고 이렇게 행과 열로 이루어진 테이블을 데이터프레임, 줄여서 df라고 한다.

 

수동으로 데이터프레임 생성하기

글로 이해하는 것은 어렵기 때문에 예를 통해서 알아보고자 한다.

필자가 타이타닉의 승객 데이터를 저장하고 싶다 . 이때 필자는 많은 수의 승객의 이름(characters), 나이(integer), 성별("male" or "female")을 알고 있다고 가정하자. 그러면 아래와 같이 데이터프레임을 생성할 수 있다.

먼저, 데이터프레임에 데이터들을 수동으로 저장하기 위해서는 DataFrame(df)를 생성해줘야 한다.

이 예제에서는 파이썬의 딕셔너리를 사용해서 데이터프레임을 생성하였는데, 각 dictionary의 key값은 열의 헤더값(ex: Name, Age, Sex)으로 사용되고, value 값은 각 열의 데이터 값이 된다.

 

하나씩 살펴보면, 

  • 이 표는 각각 3개의 열이 있고 열의 헤더(label)로는 이름(Name), 나이(Age), 성별(Sex)을 갖고 있다.
  • Name 열은 각각의 값이 문자열인 텍스트 데이터로 이루어지고, Age 열은 숫자, Sex 열은 텍스트 데이터로 이루어짐을 확인할 수 있다.

앞서, 판다스의 데이터프레임의 구조는 엑셀과 흡사하다고 했다. 위의 데이터프레임을 엑셀로 옮기면 아래와 같이 나타낼 수 있다.

이를 통해 이해가 더 쉬워졌으리라 생각된다.

 

데이터프레임의 각각의 열(column)은 시리즈(series)이다.

다시 한번 데이터프레임의 모습을 살펴보면 위와 같다. 이때 각각의 열(column)은 아래의 그림과 같이 시리즈(Series)라고 한다.

 

시리즈 또한 글로 이해하는 것은 어렵기 때문에 예를 통해서 알아보고자 한다.

앞서 우리는 Name, Age, Sex라는 헤더 값을 가진 각각의 열이 있었다. 이때 Age의 열에 대해서 살펴보면 df["Age"]를 입력하여 접근할 수 있다. 이때 출력되는 열의 데이터들을 시리즈(Series)라고 한다.

즉, 데이터프레임은 이러한 시리즈의 집합이라고 볼 수 있다.

 

데이터프레임을 생성하기 전에 시리즈를 만드는 것 또한 아래의 예와 같이 가능하다.

 

시리즈(Series)나 데이터프레임(DataFrame)으로 다양한 작업 수행하기

엑셀에서 average() 함수로 평균을 구하거나, max() 함수로 최댓값을 구하는 것과 같이, 판다스에서도 시리즈나 데이터프레임으로 여러가지 작업을 수행할 수 있다.

만약 승객의 나이 시리즈 중 최댓값이 궁금하면 아래와 같이 작업을 수행할 수 있다.

 

또한 데이터프레임 중에서 수치형 자료에 한해서 기초적인 통계량을 describe() 함수를 활용하여 출력할 수도 있다.

참고로 필자가 앞서 생성한 데이터프레임(df)의 열은 Name 시리즈, Age 시리즈, Sex 시리즈로 구성되어 있으나 describe() 함수로 기초적인 통계량을 출력할 때에는 Age 시리즈만 대상으로 출력 되었는데, 앞서 설명한 것과 같이 수치형 자료에 한해서만 출력되기 때문이다.

 

오늘 학습한 내용을 요약하면 아래와 같다.

  • 판다스를 사용하기 위해서는 import pandas as pd를 작성하여 패키지를 가져와야 한다.
  • 데이터의 표는 판다스의 DataFrame(df)으로 저장된다.
  • 데이터프레임(df)의 각 열을 시리즈(Series)라고 한다.
  • DataFrame이나 Series에 여러 메서드를 사용하여 다양한 작업을 수행할 수 있다.