0Pricing
Pandas & NumPy Academy · 강의

유용한 Series 메서드

describe(), value_counts(), unique(), map()을 사용해 Series를 빠르게 요약하고 변환합니다.

유용한 Series 메서드은(는) CoddyKit의 무료 Pandas & NumPy Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Pandas & NumPy Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Pandas & NumPy Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

describe()로 빠르게 요약하기

s.describe()는 한 번의 호출로 통계 요약을 생성합니다. 여기에는 개수, 평균, 표준 편차, 최솟값, 25번째 백분위수(Q1), 중앙값(Q2), 75번째 백분위수(Q3), 최댓값이 포함됩니다. 문자열 Series에서는 대신 개수, 고유값 개수, 최빈값, 빈도를 반환합니다. 데이터세트를 처음 살펴볼 때 열의 분포를 빠르게 파악하는 가장 좋은 방법입니다.

import pandas as pd

ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count     8.000000
# mean     30.250000
# std       8.406...
# min      19.000000
# 25%      24.250000
# 50%      29.500000
# 75%      34.750000
# max      45.000000

빈도표를 위한 value_counts()

s.value_counts()는 고유값을 인덱스로, 각 값의 출현 횟수를 데이터로 갖는 새로운 Series를 반환하며, 출현 횟수가 많은 순서로 정렬합니다. 원시 횟수 대신 비율을 얻으려면 normalize=True를 전달하십시오. 범주형 열의 분포를 파악할 때 가장 먼저 실행해 볼 만한 메서드입니다.

import pandas as pd

colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red      3
# blue     2
# green    1
print(colors.value_counts(normalize=True).round(2))
# red      0.50  blue  0.33  green  0.17

unique()와 nunique()

s.unique()는 중복되지 않는 값을 처음 나타난 순서대로 담은 NumPy 배열을 반환합니다. 빈도순으로 정렬하는 value_counts와는 다릅니다. s.nunique()는 중복되지 않는 값의 개수를 정수로 반환하며, 이는 열의 카디널리티입니다. 두 메서드 모두 기본적으로 NaN을 제외합니다. NaN을 고유한 값으로 세려면 nunique(dropna=False)를 사용하십시오.

import pandas as pd

s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique())    # ['apple' 'banana' 'cherry']
print(s.nunique())   # 3

요소별 변환을 위한 map()

s.map()은 함수, 딕셔너리 또는 다른 Series를 모든 요소에 적용합니다. 딕셔너리를 전달하면 각 값이 해당 딕셔너리 값으로 대체되고, 딕셔너리에 없는 값은 NaN이 됩니다. 함수를 전달하면 요소별로 함수가 적용됩니다. map은 범주형 레이블을 다시 코딩하거나 조회표를 적용할 때 적합합니다.

import pandas as pd

grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0    4.0
# 1    3.0
# 2    2.0
# 3    4.0
# 4    3.0

사용자 지정 함수를 위한 apply()

s.apply(func)은 각 요소에 Python 호출 가능 객체를 적용하고 그 결과를 모읍니다. map()과 달리 스칼라가 아닌 객체를 반환할 수도 있는 더 복잡한 함수를 위한 메서드입니다. 단순한 요소별 변환에는 map() 또는 벡터화 표현식을 우선 사용하고, 로직을 직접 벡터화하기에 너무 복잡할 때 apply()를 사용하십시오.

import pandas as pd

sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0    2
# 1    3
# 2    2

sort_values()와 sort_index()

s.sort_values()는 데이터 값을 오름차순으로 정렬한 Series를 반환합니다. 내림차순으로 정렬하려면 ascending=False를 전달하십시오. s.sort_index()는 인덱스 레이블을 기준으로 정렬합니다. 두 메서드 모두 기본적으로 원본 Series를 수정하지 않습니다. 원본을 직접 수정하려면 inplace=True를 전달할 수 있지만, 연산을 연결하는 최신 Pandas 코드에서는 일반적으로 권장되지 않습니다.

import pandas as pd

s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a    10
# b    20
# d    30
# c    50
print(s.sort_index())
# a    10
# b    20
# c    50
# d    30

멤버십 테스트를 위한 isin()

s.isin(values)는 요소가 제공된 목록이나 집합에 포함되는 위치에서 True가 되는 불리언 Series를 반환합니다. 여러 | 조건을 사용하는 것보다 읽기 쉽고, 큰 집합에서는 훨씬 빠릅니다. 특정 그룹에 속한 행을 필터링하거나 조회 목록과 일치하는 레코드에 표시할 때 자주 사용됩니다.

import pandas as pd

countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0     True  1    False  2     True  3    False  4    False  5     True
print(countries[countries.isin(nordics)])

범위 필터링을 위한 between()

s.between(left, right, inclusive='both')는 값이 [left, right] 범위 안에 있는 위치에서 True가 되는 불리언 Series를 반환합니다. 기본적으로 양쪽 끝값을 모두 포함합니다. (s >= left) & (s <= right)를 작성하는 것보다 간결하고 의도를 명확하게 전달합니다. 연령대나 가격대 같은 숫자 범위를 필터링할 때 유용합니다.

import pandas as pd

scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0    False  1    True  2    True  3    True  4    False  5    True
print(scores[pass_mask].values)  # [72 83 91 68]

빠른 확인을 위한 head()와 tail()

s.head(n)는 처음 n개 요소(기본값 5개)를 반환하고, s.tail(n)은 마지막 n개 요소를 반환합니다. 긴 Series를 수천 개의 행으로 출력하지 않고 시작과 끝을 간단히 살펴볼 때 데이터를 탐색하는 과정에서 매우 자주 사용됩니다. 이 메서드들은 새로운 Series(일부분)를 반환하므로 원본을 수정하지 않습니다.

import pandas as pd

s = pd.Series(range(100))
print(s.head(3))
# 0    0
# 1    1
# 2    2
print(s.tail(3))
# 97    97
# 98    98
# 99    99

이름 변경을 위한 rename()

s.rename('new_name')은 name 속성이 다른 새로운 Series를 반환합니다. 인덱스 레이블의 이름을 바꾸려면 딕셔너리나 함수를 전달합니다: s.rename(index={'old': 'new'}). Series를 DataFrame으로 결합하기 전에 이름을 바꾸는 것이 중요합니다. Series의 name이 열 머리글이 되기 때문입니다. 원시 값을 다시 할당하지 말고 항상 이름을 변경하십시오.

import pandas as pd

s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x    1
# y    2
# z    3
# Name: updated

idxmin()과 idxmax()

s.idxmin()은 최솟값의 인덱스 레이블을 반환하고, s.idxmax()는 최댓값의 레이블을 반환합니다. 인덱스에 날짜나 제품 이름처럼 의미 있는 레이블이 있을 때는 argmin/argmax보다 유용합니다. 단순한 위치 번호가 아니라 실제 식별자를 얻을 수 있기 때문입니다.

import pandas as pd

scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max())   # Carol 95
print('Worst:', scores.idxmin(), scores.min())  # Dan   60

빠른 확인

이 과목에서 배운 유용한 Series 메서드에 대한 이해도를 확인해 보십시오.

과목 요약

이 과목에서는 describe()를 한 번 호출하여 통계 요약을 제공하는 방법, value_counts()로 고유 값의 빈도표를 만드는 방법, 그리고 map()은 딕셔너리를 사용해 값을 변환하고 apply()는 각 요소에 사용자 지정 함수를 실행하는 방법을 배웠습니다. 다음으로 Pandas 데이터 분석의 2차원 핵심 자료 구조인 DataFrame을 다룹니다.

자주 묻는 질문

“유용한 Series 메서드” 강의는 무료인가요?

네 — “유용한 Series 메서드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Pandas & NumPy Academy 강의 전체를 잠금 해제할 수 있습니다. Pandas & NumPy Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“유용한 Series 메서드”에서 뭘 배우나요?

describe(), value_counts(), unique(), map()을 사용해 Series를 빠르게 요약하고 변환합니다. 브라우저에서 직접 실행하는 실습 코드로 Pandas & NumPy Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Pandas & NumPy Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Pandas & NumPy Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“유용한 Series 메서드” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Pandas & NumPy Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Pandas & NumPy Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Series 만들기
  2. 레이블 기반 및 위치 기반 접근
  3. Series의 벡터화 연산
  4. 유용한 Series 메서드
← Pandas & NumPy Academy(으)로 돌아가기