본문으로 건너뛰기
김신건의 로그

[Pandas] Series

· 수정 · 📖 약 1분 · 154자/단어 #python #pandas #series #data-structure
Pandas Series, pandas.Series, 1차원 pandas

정의

pandas.Series1차원 레이블 배열. NumPy ndarray + Index 의 결합. Pandas DataFrame 의 한 열이 곧 Series.

import pandas as pd
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'], name='score')

핵심 속성

속성의미
s.valuesnumpy array
s.indexIndex 객체
s.dtype데이터 타입
s.nameSeries 이름 (DataFrame 의 열 이름이 됨)
s.size원소 수
s.shape(n,)

생성

python
import pandas as pd

# list 로
s1 = pd.Series([1, 2, 3])

# dict 로 (key → index)
s2 = pd.Series({'a': 10, 'b': 20, 'c': 30})

# scalar broadcast
s3 = pd.Series(0, index=['x', 'y', 'z'])

print(s1.tolist(), '|', s2.to_dict(), '|', s3.tolist())
결과
[1, 2, 3] | {'a': 10, 'b': 20, 'c': 30} | [0, 0, 0]

인덱싱

python
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])

print(s['b'])              # label 로
print(s.iloc[1])           # 정수 위치
print(s[['a', 'c']].values) # 여러 label
print(s[s > 15].values)     # boolean mask
결과
20
20
[10 30]
[20 30 40]

벡터 연산

NumPy 처럼 element-wise 연산이 빠르다.

python
s = pd.Series([1, 2, 3, 4])
print((s * 10).tolist())
print((s + s).tolist())
print(s.mean(), s.sum(), s.std())
결과
[10, 20, 30, 40]
[2, 4, 6, 8]
2.5 10 1.2909944487358056

index 정렬

두 Series 를 연산할 때 index 가 자동 정렬 된다.

python
a = pd.Series([1, 2, 3], index=['x', 'y', 'z'])
b = pd.Series([10, 20, 30], index=['y', 'z', 'w'])
print(a + b)
결과
w     NaN
x     NaN
y    12.0
z    23.0
dtype: float64

매칭되지 않은 index 는 NaN. 이 동작이 SQL 의 outer join 과 유사.

DataFrame 으로 변환

s = pd.Series([10, 20, 30], name='score')
df = s.to_frame()      # 1열짜리 DataFrame
df2 = pd.DataFrame({'score': s, 'grade': ['A', 'B', 'A']})

참고

이 글의 용어 (3개)
[Pandas] 개요pandas
정의 pandas 는 Python 의 데이터 분석/조작 라이브러리. 두 가지 핵심 자료형을 중심으로 동작한다. - : 1차원 레이블 배열 (NumPy array + index) …
[Pandas] DataFramepandas
정의 은 2차원 레이블 테이블. 각 열이 , 모든 열이 같은 (행 라벨) 를 공유. SQL 테이블 / Excel 시트 / R data.frame 의 Python 대응체. 생성 <…
[Pandas] Indexpandas
정의 는 행 / 열 라벨을 보관하는 객체. / 의 모든 라벨은 Index. 정렬, 정합성, 빠른 lookup 의 기반. 기본은 RangeIndex (0, 1, 2, ...) 지만…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기