본문 바로가기
파이썬 - 분석 라이브러리

[파이썬] 시리즈 (Series) 만드는 방법

by myoongs 2024. 6. 6.

판다스:

판다스 (Pandas)는 Python Data Analysis Library의 약어로 파이썬에서 데이터 분석과 조작을 위해 사용하는 강력하고 유연한 오픈 소스 라이브러리다. 

 

판다스의 주요 역할과 가능은 아래와 같다:

- 데이터 처리: 결측값 처리, 데이터 정제, 필터링, 병합, 연결 및 변환 등을 위한 다양한 기능 제공

- 데이터 분석: 기술통계, 그룹화, 시계열 분석 등 복잡한 분석 작업 제공

- 입출력 기능: CSV, Excel, SQL, JSON 등 다양한 파일 형식의 데이터를 읽고 쓸 수 있는 기능을 제공

- 시각화 지원: matplotlib과 연동하여 데이터 시각화 가능

 

특히 데이터 분석 전에 전처리를 하는 과정에서 핵심적인 패키지로 사용된다. 

그리고 이 과정은 대부분 데이터프레임 (Dataframe)의 형태로 이루어지는 경우가 많다. 

 

시리즈 (Series) 와 데이터프레임 (Dataframe) :

 

데이터프레임은 엑셀에서처럼 행과 열로 이루어진 표의 형태다. 

시리즈 (Series)는 데이터프레임의 하위 자료형인데, 1개의 열로 이루어진 1차원 배열이다.

시리즈 여러개를 합쳐 데이터프레임을 만들 수도 있다. 

 

시리즈 만들기:

시리즈 만들기 위한 기본 형식은 아래와 같다:

    pd.Series(변수명)

 

소괄호 안에는 시리즈로 만들고자 하는 자료형의 변수명이 들어간다.

딕셔너리, 리스트, 튜플 모두 시리즈로 변환 가능하다.

 

1) 딕셔너리 → 시리즈

시리즈로 변경하는 스텝은 간단하다.

  (a) 우선 import pandas 로 판다스 라이브러리를 불러주고,

  (b) 시리즈로 바꿀 딕셔너리 데이터를 작성하고,

  (c) pd.Series() 로 시리즈화 시켜주면 된다. 

# 딕셔너리 -> 시리즈
# pandas 불러오기 (pd)
import pandas as pd

# key:value 구조를 갖는 딕셔너리를 만들고 변수 dict_data에 저장
dict_data={'a':1,'b':2,'c':3}

sr=pd.Series(dict_data)
print(sr, type(sr))

 

 

위 예시의 경우 1행 3열의 시리즈가 만들어졌다.

 

dict_data를 시리즈로 만들어주면 딕셔너리의 key 가 인덱스(index)로, value가 값으로 들어간다.

시리즈의 인덱스와 값은 다음과 같이 확인할 수 있다.

    시리즈명.index

    시리즈명.values

 

 

2) 리스트 → 시리즈

리스트 또한 시리즈로 만들 수 있는데,

리스트 변수에는 값만 담기고 인덱스 지정을 원할 경우 시리즈로 변환할 때 인덱스를 리스트 형식으로 별도로 담아서 지정해줄 수 있다. 

 

우선, 인덱스 지정 없이 시리즈 생성했을 때의 코드와 결과값은 아래와 같다. 

# 리스트 -> 시리즈
import pandas as pd

list_data=['2024-06-06', 3.14, 'ABCDE', 10, True]
sr=pd.Series(list_data)
print(sr, type(sr))

 

 

위 아웃풋에서 출력된 것처럼 리스트 변수에 있는 값은 시리즈 열의 값으로 각 행에 들어갔다.

리스트는 딕셔너리와 달리 key값이 없는 순서형 자료형이어서 자동으로 0부터 부여된다. 

 

리스트로 시리즈를 만들 때 인덱스도 지정하고 싶다면 아래와 같이 인덱스 리스트를 넣어주면 된다. 

 

 < 방법 1 > 

인덱스로 지정할 내용을 pd.Series 사용할 때 index=list('인덱스로 넣을 내용') 형태로 전달하여 지정할 수 있다.

list_data=['2024-06-06', 3.14, 'ABCDE', 10, True]
sr=pd.Series(list_data, index=list('abcde'))
print(sr, type(sr))

 

아래 아웃풋 이미지에서처럼 인덱스 부분이 0~4가 아닌 a~e로 출력된다.  

 

 < 방법 2 >

방법 1과 같은 방식이지만,

pd.Series 사용할 때 index= 부분에 직접적으로 인덱스 내용을 하나하나 작성하기보다 변수 list_index 를 통해 전달했다.

list_data=['2024-06-06', 3.14, 'ABCDE', 10, True]
list_index=['a','b,','c','d','e']
sr=pd.Series(list_data, index=list_index)
print(sr, type(sr))

 

아웃풋은 < 방법 1 > 과 동일하다.

 

 

3) 튜플 → 시리즈

튜플 또한 리스트와 동일한 방법으로 시리즈로 변환해줄 수 있다.

# 튜플 -> 시리즈
import pandas as pd

tup_data=('홍길동', '2024-06-06', '남', True)
sr=pd.Series(tup_data,index=['이름', '생년월일','성별', '학생여부'])
print(sr,type(sr))

 

반응형