Tiny Star

✨Framework+Library/🐼PANDAS

[🐼Pandas] 데이터 분석을 위한 라이브러리 : Pandas / 라이브러리 소개 / 설치방법

청크 2024. 3. 27. 10:55

자바만 열심히 파던 내가 어쩌다보니 파이썬을 사용해 데이터 파싱/분석을 해야할 일이 생겨서

천천히 공부 중인 판다스.

 

나처럼 갑자기 구명조끼 하나없이 냅다 데이터의 바다에 던져 질 사람들을 위해 판다스가 뭔지부터 정리해본다.


판다스(Pandas)?

파이썬에서 데이터 조작이나 분석을 위한 라이러리 중 하나로, 특히 표 형태의 데이터를 다루는데 유용한 라이브러리이며,

데이터를 구조화하고 처리하는데 사용된다.

 

판다스(Pandas)는 데이터 과학 및 머신러닝 분야에서 널리 사용되고 있고 데이터의 전처리부터

분석이나 모델링,  데이터 조작, 정제, 분석, 시각화 등이 가능하도록 다양한 기능을 제공한다.

 

판다스(Pandas)는 데이터프레임(DataFrame)과 시리즈(Serise)라는 두 가지의 주요 자료구조를 제공하여 데이터를 처리한다.


판다스(Pandas)의 주요기능과 특징

앞서 설명한 데이터 전처리 포함 다양한 기능을 제공하는 판다스의 주요 기능과 특징은 이렇다.

 

1) 데이터 로딩 : CSV, Excel, SQL 데이터베이스, JSON 등 다양한 형식의 데이터를 불러올 수 있다.

2) 데이터 조작: 데이터프레임과 시리즈를 활용하여 데이터를 조작하고 변형할 수 있는데,
    예를 들어, 열 선택, 행 선택, 데이터 추가, 삭제, 수정 등이 가능하다.
3) 데이터 필터링: 특정 조건에 맞는 데이터만 선택하여 추출이 가능하다.
4) 데이터 그룹화와 집계: 특정 열을 기준으로 데이터를 그룹화하고 그룹별 집계 함수를 적용할 수 있다.
5) 데이터 결합: 두 개 이상의 데이터프레임을 합치거나 결합할 수 있다.
6) 결측치 처리: 누락된 데이터나 결측치를 처리하고 채울 수 있는 다양한 방법을 제공한다.
7) 데이터 시각화: 데이터를 시각화하여 그래프나 차트로 표현할 수 있는 기능을 제공한다.

 

이 모든 기능을 사용하는 방법은 내가 써보면서 하나씩 올려보려고 한다.


판다스(Pandas)의 데이터 구조

앞서 판다스에서는 두 가지의 주요 자료구조를 제공한다고 했다.

Pandas Series(1차원)/Pandas DataFrame(2차원)

 

먼저 DataFrame 객체.

DataFrame 객체는 행과 열로 이루어진 표 형태의 데이터 구조이며,

2차원 데이터를 다루기 위한 객체로 열은 각각의 변수를 나타내고 행은 각각의 관측치를 나타낸다.

예를 들어 데이터베이스의 테이블 또는 엑셀/스프레드시트와 유사한 구조라고 이해하면 편하다.

#판다스 라이브러리를 임포트, 판다스의 모든 기능을 사용가능
import pandas as pd

# 예시 데이터 생성
data = {
    '이름': ['철수', '영희', '민수', '수영'],
    '나이': [25, 30, 35, 40],
    '성별': ['남', '여', '남', '여']
}

# 데이터프레임 생성
df = pd.DataFrame(data)

print("DataFrame:")
print(df)

# '이름' 열 선택 (시리즈)
names = df['이름']
print("\nSeries - '이름' 열:")
print(names)

# 첫 번째 행 선택
first_row = df.loc[0]
print("\n첫 번째 행:")
print(first_row)

# 첫 번째부터 세 번째까지의 행 선택
subset = df.loc[0:2]
print("\n첫 번째부터 세 번째까지의 행:")
print(subset)

 

위 예시를 한 줄 씩 설명해보자면,

 

먼저 사용할 데이터를 data라는 이름을 가진 딕셔너리 형태로 저장하며, 데이터 프레임을 생성할 때 사용이 된다.

만약 예시처럼 직접 데이터를 저장하지 않고 쿼리를 사용해 DB에서 데이터를 받아올 때도 당연히 딕셔너리 형태로 받아오게 된다.

이유는? DB도 행과 열로 이루어진 키-값의 구조를 가지니까!

 

data라는 딕셔너리를 df = pd.DataFrame(data) 를 사용하여 데이터프레임을 생성한다.

이 때 생성되는 데이터프레임이 아까 설명한 행과 열의 2차원 형태(표)로 데이터를 저장하는 구조이다.

 

특정 열에 데이터를 추출하기 위해 names = df['이름'] 데이터프레임에서 '이름' 열을 선택하여

시리즈 형태로 저장하는데, 이렇게 하면 해당 열의 데이터를 추출할 수 있다.

 

first_row = df.loc[0]

데이터 프레임에서 첫 행을 선택하여 시리즈 형태로 저장하고 loc[]를 사용하여 행을 선택해주고

subset = df.loc[0:2]

데이터프레임에서 첫 번째부터 세 번째까지의 행을 선택하여 데이터프레임 형태로 저장해주면

 

DataFrame:
   이름  나이 성별
0  철수  25  남
1  영희  30  여
2  민수  35  남
3  수영  40  여

Series - '이름' 열:
0    철수
1    영희
2    민수
3    수영
Name: 이름, dtype: object

첫 번째 행:
이름    철수
나이    25
성별     남
Name: 0, dtype: object

첫 번째부터 세 번째까지의 행:
   이름  나이 성별
0  철수  25  남
1  영희  30  여
2  민수  35  남

이런 결과값을 얻을 수 있다.

 

다음은 Series객체.

인덱스와 값으로 이루어져 일련의 데이터를 나타내는 1차원 배열 형태의 자료 구조로, 

각 데이터에는 인덱스가 있어 해당 데이터를 식별하고 DataFrame 객체에서 열을 선택하여 추출할 수 있다.

 

# '이름' 열 선택 (시리즈)
names = df['이름']
print("\nSeries - '이름' 열:")
print(names)

# '나이' 열 선택 (시리즈)
ages = df['나이']
print("\nSeries - '나이' 열:")
print(ages)

# '성별' 열 선택 (시리즈)
genders = df['성별']
print("\nSeries - '성별' 열:")
print(genders)

아까와 같은 코드에서 이름 열만 선택했듯

모든 데이터 키값을 해당 열들만 추출해보는 코드로 변경한다면 

Series - '이름' 열:
0    철수
1    영희
2    민수
3    수영
Name: 이름, dtype: object

Series - '나이' 열:
0    25
1    30
2    35
3    40
Name: 나이, dtype: int64

Series - '성별' 열:
0    남
1    여
2    남
3    여
Name: 성별, dtype: object

이런 결과값을 얻을 수 있을 것이다.

이름 열은 이름만, 나이 열은 나이만, 성별 열은 성별만 추출된다.


판다스(Pandas) 설치방법

판다스에 대한 개념정리를 했으니 마지막으로 설치방법!

 

1. 파이썬 설치 및 파이썬에 대한 환경변수를 설정해준다.

이건 파이썬을 사용하고 있다면 패스!

 

2. 터미널 또는 cmd에서 pip를 이용해 손쉽게 설치!

pip install pandas

 

3. 판다스 사용 전 import

import pandas as pd

이 때 as pd 는 SQL에서 정해지는 별칭과 동일한 개념으로

pandas 라이브러리를 사용할 때 매번 귀찮게 pandas를 사용하는 대신 pd로 사용한다는 의미이다.

 

예를 들면 pandas.DataFrame을 pd.DataFrame이라고 간편하게 사용할 수 있게 된다. 

 

기본 개념과 설치가 끝났다면!

간단한 사용법은 내가 사용하면서 시간날 때마다 차근차근히 들고와보겠다.