파이썬 (Python)/Pandas (DataFrame)

파이썬 판다스 :: 시리즈 Series 정의 및 생성 / 함수활용, 인덱싱

옐루비(YellowBee) 2023. 5. 23. 17:31

판다스(Pandas)의 시리즈(Series)는 1차원 데이터 구조로, 인덱스(index)와 값(value)으로 구성된 데이터를 담는 객체입니다.

Series 는 열(column) 또는 변수(variable)를 나타내는 데에 자주 사용됩니다.

Series 는 NumPy 배열과 유사하며, 인덱스를 통해 각 값에 접근할 수 있습니다.

Series 의 특징

Series 는 다음과 같은 특징을 가지고 있습니다.


값의 정렬: 시리즈는 값의 정렬을 지원합니다. 기본적으로 인덱스에 따라 값이 정렬되어 있습니다.

유연한 인덱싱: 시리즈는 사용자가 지정한 인덱스를 사용하여 데이터에 접근할 수 있습니다. 인덱스는 숫자, 문자열 또는 기타 자료형으로 구성될 수 있습니다.

누락된 데이터 처리: 시리즈는 누락된 데이터를 표현하기 위해 NaN(Not a Number) 값으로 처리할 수 있습니다. 이를 통해 데이터의 누락을 효과적으로 다룰 수 있습니다.

벡터화 연산: 시리즈는 벡터화 연산을 지원하므로, 여러 시리즈 간의 연산이 간편하게 수행될 수 있습니다.

Series 는 파이썬의 리스트나 배열을 사용하여 생성할 수 있습니다. 

import pandas as pd

data = [10, 20, 30, 40, 50]
series = pd.Series(data)
print(series)

#리스트를 사용하여 시리즈 생성

위 코드는 [10, 20, 30, 40, 50]라는 리스트를 데이터로 사용하여 시리즈를 생성하고 출력하는 예시입니다.

Series 의 다양한 연산과 함수 활용

시리즈 객체는 생성된 후에도 다양한 연산과 함수를 활용하여 데이터를 조작하고 분석할 수 있습니다.

예를 들어, 시리즈의 합계, 평균, 최솟값, 최댓값 등을 구하는 메소드(함수)와 통계적인 정보를 제공하는 메소드와 함께 활용가능합니다.

import pandas as pd

# 시리즈 생성
data = [10, 20, 30, 40, 50]
series = pd.Series(data)

# 합계 계산
total = series.sum()
print("합계:", total)

# 평균 계산
mean = series.mean()
print("평균:", mean)

# 최솟값 계산
minimum = series.min()
print("최솟값:", minimum)

# 최댓값 계산
maximum = series.max()
print("최댓값:", maximum)

# 중앙값 계산
median = series.median()
print("중앙값:", median)

# 표준편차 계산
std_deviation = series.std()
print("표준편차:", std_deviation)

# 분위수 계산
quantile = series.quantile(0.5)
print("50% 분위수:", quantile)

다양한 함수들을 적용하여 값은 얻는 것이 가능합니다.

Series의 인덱싱 (indexing)

인덱싱을 통해 특정 위치에 있는 값을 접근하거나 조작이 가능합니다.

파이썬의 리스트나 배열과 유사한 방식으로 인덱싱할 수 있습니다.

import pandas as pd

# 시리즈 생성
data = [10, 20, 30, 40, 50]
index = ['A', 'B', 'C', 'D', 'E']
series = pd.Series(data, index=index)

# 단일 값 접근
value = series['B']
print("인덱스 B의 값:", value)

# 여러 값 접근
values = series[['A', 'C', 'E']]
print("인덱스 A, C, E의 값:", values)

# 조건을 활용한 필터링
filtered = series[series > 30]
print("값이 30보다 큰 항목 필터링:", filtered)

# 슬라이싱
sliced = series[1:4]
print("인덱스 1부터 3까지 슬라이싱:", sliced)

단일 값 접근은 인덱스를 지정하여 해당 인덱스의 값에 접근합니다.

여러 값 접근은 인덱스 리스트를 사용하여 해당하는 인덱스의 값들을 선택합니다.

* 불리언 인덱싱, 정수 인덱싱, 레이블 인덱싱

import pandas as pd

# 시리즈 생성
data = [10, 20, 30, 40, 50]
index = ['A', 'B', 'C', 'D', 'E']
series = pd.Series(data, index=index)

# 불리언 인덱싱
boolean_indexing = series[series > 30]
print("값이 30보다 큰 항목 필터링:", boolean_indexing)

# 정수 인덱싱
integer_indexing = series[1:4]
print("인덱스 1부터 3까지 슬라이싱:", integer_indexing)

# 레이블 인덱싱
label_indexing = series[['A', 'C', 'E']]
print("인덱스 A, C, E의 값:", label_indexing)

불리언 인덱싱은 조건을 활용하여 시리즈의 값을 필터링합니다. series > 30은 시리즈에서 값이 30보다 큰 항목들을 선택합니다.

정수 인덱싱은 시리즈의 인덱스를 기준으로 정수 범위를 지정하여 해당하는 부분 시리즈를 선택합니다. series[1:4]는 인덱스 1부터 3까지의 값을 선택합니다.

레이블 인덱싱은 시리즈의 인덱스 레이블을 기준으로 해당하는 인덱스의 값을 선택합니다. series[['A', 'C', 'E']]는 인덱스 'A', 'C', 'E'에 해당하는 값을 선택합니다.

인덱스 배열, 조건식을 활용한 인덱싱 등 다양한 인덱싱 방법을 활용할 수 있습니다. 판다스 시리즈는 다양한 인덱싱 기능을 제공하여 데이터에 접근하고 조작하는 유연성을 제공합니다.