pandas의 Series 생성 [미래 실험실 pYTHON]

안녕하세요. 언제나 휴일에 언휴예요.

이번 강의에서는 pandas의 기본 자료구조인 Series를 생성하는 실습입니다.

== 다루는 내용
리스트로 Series 생성
Series의 values와 index
index 값도 전달하여 Series 생성
딕셔너리로 Series 생성
원소 형식이 다른 리스트로 Series 생성

pandas의 Series는 리스트의 각 항목에 이름을 부여한 자료구조라고 볼 수 있어요.

직접 코드와 실행 결과를 보면서 Look & Feel합시다.

리스트로 Series 생성

pandas의 Series를 생성할 때 리스트를 데이터로 전달할 때가 많습니다.

pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath:bool=False

다음은 성적 리스트를 입력 인자로 Series를 생성하는 코드입니다.

확인을 위해 생성한 Series 정보를 출력합니다.

import pandas as pd
scores= [85,90,92,93]
ps1 = pd.Series(scores)
print('ps1')
print(ps1)

다음 실행 결과를 보고 Series의 구조를 Look & Feel 하세요.

ps1
0    85
1    90
2    92
3    93
dtype: int64

실행 결과를 보면 성적 리스트 각 항목에 0부터 순차적으로 값을 출력하는 것을 알 수 있어요.

Series의 values와 index

이 정보를 Series에서는 index라고 부릅니다.

그리고 성적 리스트처럼 실제 데이터 부분을 values라고 부릅니다.

다음은 values와 index를 출력한 코드입니다.

print(ps1.values)
print(ps1.index)

실행 결과는 다음과 같습니다.

[85 90 92 93]
RangeIndex(start=0, stop=4, step=1)

index 값도 전달하여 Series 생성

Series를 생성할 때 index도 개발자가 정할 수 있습니다.

다음은 성적 리스트와 함께 index로 이름을 전달하는 예제 코드입니다.

names = ['홍길동','강감찬','임꺽정','이순신']
ps2 = pd.Series(scores,index=names)
print('ps2')
print(ps2)
print(ps2.values)
print(ps2.index)

실행 결과는 다음과 같습니다.

ps2
홍길동    85
강감찬    90
임꺽정    92
이순신    93
dtype: int64
[85 90 92 93]
Index(['홍길동', '강감찬', '임꺽정', '이순신'], dtype='object')

딕셔너리로 Series 생성

딕셔너리로 Series를 생성할 수도 있어요.

이 때 딕셔너리의 키 부분은 index, 값 부분은 values입니다.

다음은 딕셔너리로 Series를 생성하는 예제 코드입니다.

pd3 = pd.Series(td)
print('ps3')
print(pd3)
print(pd3.values)
print(pd3.index)

실행 결과는 다음과 같습니다.

ps3
홍길동    85
강감찬    90
임꺽정    92
이순신    93
dtype: int64
[85 90 92 93]
Index(['홍길동', '강감찬', '임꺽정', '이순신'], dtype='object')

원소 형식이 다른 리스트로 Series 생성

자주 발생하지는 않겠지만 원소 형식이 다른 리스트로 Series를 생성할 수도 있어요.

datas = [1,'abc',True,34.5]
ps4 = pd.Series(datas)
print('ps4')
print(ps4)
print(ps4.values)
print(ps4.index)

실행 결과는 다음과 같습니다.

ps4
0       1
1     abc
2    True
3    34.5
dtype: object
[1 'abc' True 34.5]
RangeIndex(start=0, stop=4, step=1)