판다스 기초 Series의 속성과 기능

dpwl·2024년 6월 18일

Data Analysis with Python

목록 보기
4/48

1. 시리즈의 속성

1.1 index

index 속성은 시리즈의 인덱스(라벨)를 조회한다.

Series.index

예시:

import pandas as pd

# 시리즈 생성
data = [10, 20, 30, 40, 50]
index = ['a', 'b', 'c', 'd', 'e']
series = pd.Series(data, index=index)

# 인덱스 출력
print(series.index)

# 결과값:
# Index(['a', 'b', 'c', 'd', 'e'], dtype='object')

1.2 values

values 속성은 시리즈의 값들을 numpy 배열로 반환한다.

property Series.values

예시 1:

>>> pd.Series([1, 2, 3]).values

# 결과값:
array([1, 2, 3])

예시 2:

import pandas as pd

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

# 값들을 Numpy 배열로 출력
print(series.values)

# 결과값:
# [10 20 30 40 50]

1.3 dtype

dtype 속성은 시리즈에 저장된 값들의 데이터 타입을 반환한다.

Series.dtype

예시 1:

>>> s = pd.Series([1, 2, 3])
>>> s.dtype

# 결과값:
# dtype('int64')

예시 2:

import pandas as pd

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

# 데이터 타입 출력
print(series.dtype)

# 결과값:
# int64

1.4 shape

shape 속성은 시리즈의 형태를 튜플로 반환한다.

shape 튜플 형태: (행의 수, 열의 수)

시리즈는 1차원 배열이므로 행의 수만을 나타내는 형태로 반환된다. 모든 시리즈는 (행의 수,) 형태를 가지게 된다.

Sereis.shape

예시:

>>> s = pd.Series([1, 2, 3])
>>> s.shape

# 결과값:
(3,)

1.5 size

size 속성은 시리즈에 포함된 항목의 개수를 숫자로 반환한다.

Series.size

예시:

import pandas as pd

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

# 시리즈의 크기 출력
print(series.size)

# 출력 결과:
# 5

1.6 hasnans

hasnans 속성은 시리즈에 결측치 (NaN 또는 None)의 존재하는지 여부를 불리언 값으로 반환한다.

Series.hasnans

예시:

import pandas as pd

# 시리즈 생성 (결측치 포함)
data_with_nan = [10, None, 30, pd.NA, 50]
series_with_nan = pd.Series(data_with_nan)

# hasnans 속성을 사용하여 결측치의 존재 여부 확인
print(series_with_nan.hasnans)

# 출력 결과:
# True

주의점:
시리즈에 하나라도 결측치가 존재하면 결과값은 True 값을 반환한다.

참고:

1) NaN (Not a Number):

  • '숫자가 아님'을 나타냄
  • Numpy와 Pandas에서 누락된 데이터나 연산 중 오류로 인해 숫자 값을 얻을 수 없는 경우에 사용

2) None:

  • '아무런 값도 없음'을 나타냄
  • Python의 내장 객체

1.7 is_unique

is_unique 속성은 시리즈 내에 중복되는 값이 없는지 여부를 불리언 값으로 반환한다.

Series.is_unique

예시:

import pandas as pd

# 중복되지 않는 값들로 이루어진 시리즈 생성
s1 = pd.Series([1, 2, 3, 4, 5])

# 중복된 값들로 이루어진 시리즈 생성
s2 = pd.Series([1, 2, 3, 3, 4])

print(s1.is_unique)  # 결과: True
print(s2.is_unique)  # 결과: False

만약 시리즈 내 모든 값이 unique면 True 값을 반환하고, 중복되는 값이 하나라도 있다면 False 값을 반환한다.

1.8 name

name 속성은 시리즈에 이름을 확인하거나 지정할 때 사용한다.

Series.name

예시 1:

>>> s = pd.Series([1, 2, 3], dtype=np.int64, name='Number')
>>> s

# 결과값:
# 0    1
# 1    2
# 2    3
# Name: Number, dtype: int64

예시 2:

>>> s.name = 'Integers'
>>> s

# 결과값:
# 0    1
# 1    2
# 2    3
# Name: Integers, dtype: int64

2. 시리즈의 기능

2.1 head(n) & tail(n)

head(n) & tail(n)는 시리즈의 처음(head) 또는 끝(tail)에서부터 n개의 항목을 반환한다.

Series.head(n=5)
Series.tail(n=5)

1) 매개변수(Parameters):

  • n: int, 기본값 5

2) 반환값(Returns): 호출자와 동일한 유형의 데이터(same type as caller)

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 처음 3개의 항목 반환
print(s.head(3))

# 결과값:
# 0    1
# 1    2
# 2    3
# dtype: int64

# 마지막 4개의 항목 반환
print(s.tail(4))

# 결과값:
# 6     7
# 7     8
# 8     9
# 9    10
# dtype: int64

2.2 unique()

unique() 메서드는 시리즈에서 중복되지 않는 고유한 값을 배열 형태로 반환한다.

Series.unique()

반환값(Returns): ndarray 또는 ExtensionArray

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10])

# 고유한 값 반환
unique_values = s.unique()
print(unique_values)

# 결과값:
# [1  2  3  4  5  6  7  8  9 10]

2.3 duplicated()

duplicated() 메서드는 시리즈 내의 각 원소가 중복되었는지를 불리언(boolean) 형태로 나타내는 시리즈를 반환한다.

Series.duplicated(keep='first')

매개변수(Parameters):

  • keep : {'first, 'last', False}, 기본값 'first'
    • 'first': 첫 번째 발생을 제외한 모든 중복값을 True로 표시
    • 'last': 마지막 발생을 제외한 모든 중복값을 True로 표시
    • False: 모든 중복값을 True로 표시

반환값(Returns): Series[bool]

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10])

# 중복 여부 확인
duplicated_values = s.duplicated(keep='first')
print(duplicated_values)

# 결과값:
# 0     False
# 1     False
# 2     False
# 3     False
# 4      True
# 5      True
# 6      True
# 7     False
# 8     False
# 9     False
# 10    False
# 11     True
# 12    False
# 13    False
# dtype: bool

2.4 value_counts()

value_counts() 메서드는 시리즈 내의 고유한 값들의 개수를 시리즈로 반환하여 각 값이 몇 번씩 나타나는지를 알려준다.

Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

매개변수(Parameters):

  • normalize: 불리언(bool), 기본값 False
    • True로 설정하면 각 값의 상대적인 빈도 반환
  • sort: 불리언(bool), 기본값 True
    • True로 설정하면 빈도 순으로 결과 정렬
  • ascending: 불리언(bool), 기본값 False
    • True로 설정하면 결과를 오름차순으로 정렬
  • bins: 정수(int), optional
    • 정수를 설정하면 값을 구간(bin)으로 나눠 빈도 계산
  • dropna: 불리언(bool), 기본값 True
    • False로 설정하면 결측치(NaN)도 고유한 값으로 처리

반환값(Returns): Series

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10])

# 각 값의 빈도수 계산
value_counts = s.value_counts()
print(value_counts)

# 결과값:
# 8     2
# 4     2
# 3     2
# 10    1
# 9     1
# 7     1
# 6     1
# 5     1
# 2     1
# 1     1
# dtype: int64

2.5 sort_values()

sort_values() 메서드는 시리즈의 값을 기준으로 정렬한다.

기본적으로 오름차순으로 정렬되지만, ascending 매개변수를 사용하여 내림차순으로 정렬할 수도 있다.

Series.sort_values(*, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

매개변수(Parameters):

  • axis: {0 or 'index'}
    • 정렬할 축 지정
  • ascending: 불리언(bool) 또는 불리언(bool) 리스트, 기본값 True
    • True로 설정하면 오름차순으로 정렬
    • 리스트를 제공하여 각 열에 대한 정렬 방향 지정 가능
  • inplace: 불리언(bool), 기본값 False
    • True로 설정하면 원본 데이터를 변경
  • kind: {'quicksort', 'mergesort', 'heapsort', 'stable'}, 기본값 'quicksort'
    • 정렬 알고리즘을 지정
  • na_position: {'first' or 'last'}, 기본값 'last'
    • 결측치의 위치를 지정
  • ignore_index: 불리언(bool), 기본값 False
    • True로 설정하면 정렬 후 인덱스를 무시하고 재설정

반환값(Returns): 정렬된 시리즈 (또는 None, inplace=True인 경우)

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([3, 1, 2, 5, 4])

# 값을 기준으로 오름차순 정렬
sorted_s = s.sort_values()
print(sorted_s)

# 값을 기준으로 내림차순 정렬
sorted_s_desc = s.sort_values(ascending=False)
print(sorted_s_desc)

# 결과값:
# 1    1
# 2    2
# 0    3
# 4    4
# 3    5
# dtype: int64
# 3    5
# 4    4
# 0    3
# 2    2
# 1    1
# dtype: int64

2.6 describe()

describe() 메서드는 주어진 시리즈의 기초 통계 정보를 요약하여 시리즈나 데이터프레임으로 반환한다. 이 메서드는 평균, 표준 편차, 최솟값, 최댓값, 중앙값 등을 포함한다.

Series.describe(percentiles=None, include=None, exclue=None)

Parameters:

  • percentiles: list-like of numbers, optional

매개변수(Parameters):

  • percentiles: 리스트 형태의 숫자 (옵션)
    • 분위수 지정
    • 기본값은 None으로, 분위수를 제공하지 않음
  • include: 데이터 타입 (옵션)
    • 요약에 포함할 열의 데이터 유형을 지정
  • exclude: 데이터 타입 (옵션)
    • 요약에서 제외할 열의 데이터 유형을 지정

반환값(Returns): 시리즈 또는 데이터프레임 형태의 기초 통계 정보

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 5])

# 기초 통계 정보 요약
description = s.describe()
print(description)

# 결과값:
# count    5.0
# mean     3.0
# std      1.581139
# min      1.0
# 25%      2.0
# 50%      3.0
# 75%      4.0
# max      5.0
# dtype: float64

2.7 max() & min()

max() 메서드는 시리즈의 최대값을 반환하고, min() 메서드는 시리즈의 최소값을 반환한다.

Series.max()
Series.min()

반환값(Returns): 최대값 또는 최소값

예시:

import pandas as pd

# 시리즈 생성
s = pd.Series([1, 2, 3, 4, 5])

# 최대값과 최소값 찾기
max_value = s.max()
min_value = s.min()

print("최대값:", max_value)
print("최소값:", min_value)

# 결과값:
# 최대값: 5
# 최소값: 1
profile
거북선통통통통

0개의 댓글