파이썬 라이브러리 기초 - Pandas(Series와 DataFrame)

안녕하세요 jay입니다.
오늘은 파이썬 라이브러리 Pandas에 대해 알아보도록 하겠습니다.

1. Pandas란

Pandas는 파이썬에서 사용하는 데이터 분석 라이브러리입니다. Pandas는 다차원 구조화된 데이터를 뜻하는 계량 경제학 용어인 Panel data와 파이썬 데이터 분석인 Python data analysis에서 따온 이름입니다. Pandas는 안정적으로 대용량의 데이터를 처리하는데 편리한 도구입니다. Numpy의 고성능 배열 계산 기능과 스프레트시트, SQL과 같은 관계형 데이터베이스의 데이터 조작 기능을 조합되어 있습니다. Pandas의 기능을 이용해 데이터의 재배치와 집계, 부분집합 구하기 등을 보다 쉽게 할 수 있습니다


2. Pandas의 자료구조

Pandas는 Series와 dataframe이라는 자료구조를 제공합니다.
Series : 파이썬의 딕셔너리와 리스트를 섞어 놓은 듯한 1차원 배열 자료구조
DataFrame : 엑셀에서 볼 수 있는 시트(Sheet)와 동일한 개념, Series가 모여 DataFrame이 됩니다.(2차원)

3. Series

Series는, index와 index에 해당하는 value를 가지고 있습니다. Series를 만드는 법은 총 3가지가 있습니다. 리스트, 딕셔너리, pandas array로 만들 수 있습니다. 아래 예제를 통해 확인해보도록 하겠습니다. (단, index의 유무는 자유입니다.)

import pandas as pd
import numpy as np

# Let's make a Series
# 1. list

s_index = [1,2,3,4,5]
s_value = ['a','b','c','d','e']

s1 = pd.Series(s_value, index = s_index)
print(s1)

"""
1    a
2    b
3    c
4    d
5    e
"""

# 2. dictionary
s_dic = {1:'a', 2: 'b', 3:'c', 4:'d'}
s2 = pd.Series(s_dic)
print(s2)

# 3. array
arr_index = np.array([1,2,3,4])
arr_value = np.array(['a','b','c','d'])
s3 = pd.Series(arr_value , index = arr_index)
print(s3)

1. 리스트를 활용해서 value와 index를 정해준 다음 pd.Series를 통해 Series를 생성했습니다.
2. 딕셔너리를 활용해서 key는 index, value는 Series의 value로 Series를 생성했습니다.
3. array를 활용해 index, value를 정해준 다음 pd.Series를 통해 Series를 생성했습니다.

3. DataFrame

DataFrame은 index, value뿐만 아니라 columns가 있습니다. Series가 여러개가 있으면 column도 여러가지가 필요하므로 각각의 Series를 열로 구분하기 위해선 columns라는 parameter가 필요합니다.


# how to make a DataFrame

# 1. list
import pandas as pd
import numpy as np

name = ["KIM","LEE","JUNG"]
kim_score = [30,90,80]
lee_score = [40,50,20]
jung_score = [100,80,100]

df_list = [kim_score,lee_score,jung_score]

df = pd.DataFrame(df_list , index = name ,columns = ["KOR","English","Math"])
print(df)
print()
"""
      KOR  English  Math
KIM    30       90    80
LEE    40       50    20
JUNG  100       80   100
"""

# 2. dictionary

name = ["KIM","LEE","JUNG"]

df_dic = {"KOR" : [30,40,100], "English" : [90,50,80], "Math" : [80,20,100]}

df2 = pd.DataFrame(df_dic, index = name)
print(df2)
print()

# 3. Series

name = ["KIM","LEE","JUNG"]

kor = pd.Series([30,40,100],index = name)
eng = pd.Series([90,50,80],index = name)
math = pd.Series([80,20,100],index = name)
df3 = pd.DataFrame()
df3['KOR'] = kor
df3['English'] = eng
df3['Math'] = math
print(df3)

1. 리스트로 DataFrame을 만드는 방식입니다. df_list라는 리스트에 kim,lee,jung 의 국영수 성적에 대한 list들을 넣었습니다. 그리고 df_list, index, columns를 parameter로 넣었습니다.

2. dictionary로 DataFrame을 만드는 방식입니다. df_dic이라는 dictionary에 국영수 성적을 key, value로 할당한 뒤, DataFrame에 parameter로 넣었습니다.

3. Series로 DataFrame을 만드는 방식입니다. 국영수 성적을 각각 Series로 만들고, df3라는 DataFrame을 만들어 열을 지정하여 값을 각각 할당했습니다.


댓글