Py) 기초 - Pandas

Py) 기초 - Pandas

파이썬 기반 데이터분석을 위하여 Pandas 라이브러리에 대해 간단하게 알아본다.


개요

NumPy가 파이썬에서 수치연산을 잘 할 수 있도록 지원하는 라이브러리인데 이를 기반으로 tabular 데이터(표 형태의 정형데이터)를 보다 편하게 다룰 수 있도록 하는 라이브러리가 Pandas이다. 특히 Pandas를 사용하는 시점부터 파일 입출력(read, write)이 매우 편해지고 데이터 필터링, 그래프, 결측치 처리, 시계열 분석, 스타일링 등 슬슬 엑셀을 대체할 수 있는 기능을 맛보게 된다.
※ 스타일링의 경우 관련 게시물 참고

Pandas 홈페이지 메인

라이브러리 준비

설치

주피터 노트북 환경 기준으로 “pip”를 사용하여 설치할 수 있다.
※ 간혹 “--user” 를 요구하는 경우가 있다.
※ 하이픈 2개 “--“와 1개”-“를 잘 구분하도록 하자.

!pip install pandas
!pip install pandas --user

특정 버전을 설치하는 경우 다음과 같이 입력할 수 있다.

!pip install pandas==1.5.3

만약 설치시 에러가 발생한다면 다음의 코드로 해결이 될 수 있다.

!pip install --force-reinstall pandas==1.24.2

업데이트

최신의 라이브러리를 사용하고자 하는데 정확한 버전을 찾아보기 귀찮다면 다음과 같이 해결할 수 있다.
※ 하이픈 2개 “--“와 1개”-“를 잘 구분하도록 하자.

!pip install pandas --upgrade

만약 상기 코드 실행시 에러가 발생한다면 다음의 코드로 해결이 될 수 있다.

!pip install pandas --upgrade --ignore-installed

Pandas 업데이트 결과

라이브러리 사용

설치가 성공적으로 되었다면 라이브러리를 불러올 수 있다. 여기서 불러온다는 것은 해당 라이브러리의 기능을 사용하도록 준비하는 것이라고 이해하면 된다. 그리고 경우에 따라 라이브러리 버전별 함수의 동작결과가 다를 수 있기 때문에 이 것을 확인하는 것도 종종 필요하다.

불러오기

1
import pandas as pd

“Pandas” 로 대소문자를 섞어쓰는 것이 아닌 모두 소문자로 쓰면 되며 보다 간결한 코드 작성을 위해 “pandas” 대신 “pd”로 선언하였다. 물론 “as” 뒤에 “pd” 대신 다른 글자로 선언해도 되지만 Pandas의 경우 대부분의 사람들이 “pd”로 선언하기 때문에 되도록이면 이를 지켜주는 것을 권장한다.

라이브러리를 불러오는 것은 한번 실시하면 다시 불러올 필요가 없다. 엄밀하게 말하면 단일 주피터 노트북에서 계속 작업하는 경우 노트북 재시작(의도치 않은 재시작 포함)이나 노트북 자체를 껐다가 켜는 경우가 아니라면 다시 “import pandas as pd” 코드를 실행할 필요가 없다는 뜻이다.

버전 확인

Pandas 라이브러리를 “pd”로 불러온 경우 “pd” 뒤에 “__version__“(양 옆에 언더바 2개)을 써서 버전을 확인할 수 있다.

1
2
3
import pandas as pd
pd.__version__
## '1.5.3'

함수의 사용

다음의 코드는 앞에서 Pandas 라이브러리를 “pd”로 먼저 불러왔다는 전제하에 작성된 코드이기 때문에 이를 참고해서 코드를 따라 작성하면 되겠다.

1
2
pd.isna(1)
## False

관련 객체

시리즈(Series)와 데이터프레임(DataFrame)이 있다. 두 객체 모두 NumPy의 어레이(Array)를 기반으로 만들어진 객체이기 때문에 NumPy의 강력함에 Pandas의 추가 기능까지 더해졌다고 볼 수 있겠다.

  • 생성
    시리즈의 경우 주로 리스트(중첩x)나 어레이(1차원)를 Series()함수에 입력으로 넣어 만든다.
    ※ 함수 대소문자 주의
1
2
3
4
5
6
7
8
9
10
11
12
13
pd.Series([1, 2, 3])
## 0 1
## 1 2
## 2 3
## dtype: int64

import numpy as np
arr = np.array([100, 200, 300])
pd.Series(arr)
## 0 100
## 1 200
## 2 300
## dtype: int32

데이터프레임의 경우 2중첩 리스트나 2차원 어레이를 DataFrame()함수에 입력으로 넣어 만든다.
※ 함수 대소문자 주의

1
pd.DataFrame([[1, 2, 3]])
0 1 2
0 1 2 3
1
pd.DataFrame([[1, 2], [3, 4]])
0 1
0 1 2
1 3 4
1
2
arr2 = np.array([[100, 200], [300, 400]])
pd.DataFrame(arr2)
0 1
0 100 200
1 300 400

Pandas 라이브러리의 시리즈와 데이터프레임 객체는 이어지는 게시글에서 다룬다.
16 - Pandas(Series)
17 - Pandas(DataFrame)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×