**Series 생성(Create)**

27일차에서는 Series를 계속해서 다뤄볼 것이다.

list를 Series화 해보기

Pandas에서는 .Series메소드를 이용하여 Series를 생성할 수 있다.

  • numbers 라는 list를 만든 후 이를 Series화 해보겠다.
import pandas as pd
numbers = list(range(3,14))
numbers #[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

.Series메소드 사용

pd.Series(numbers)

  • Series의 index는 인자값에 index = 를 넣어서 변환할 수 있다.

letters라는 리스트를 만들고 이를 Series로 만든 뒤 index = 에는 numbers 함수를 넣어줬다.

letters = list("programmers")
pd.Series(letters, index = numbers)

numbers 메소드가 index 된 것을 확인.

  • Series의 index에 문자열을 넣보자.

1.먼저 index로 사용할 리스트를 만든다.

letters_index = [f"문자{i}" for i in range(1,12)]
letters_index

  1. 이후 이전에 만들었던letters 리스트와 결합!
pd.Series(letters ,index = letters_index)

인덱스가 문자1, 문자2… 로 지정된 것을 확인할 수 있다.

✏️key point!

.Series 함수를 사용하고자 할 때에는 values의 길이와 index의 길이가 같아야 된다.

**ValueError**

인덱스로 사용될 letters_index 의 길이를 10개까지만 준비 하게 된다면

letters 에 있는 리스트는 총 11개이므로 오류가 발생


딕셔너리를 Series화 해보기

딕셔너리 또한 Series화를 할 수 있다.

먼저 user라는 딕셔너리를 만들어보자.

user = {
    "name":"Spencer",
    "age":20,
    "job":None
}

이름은 spencer이고

나이는 20세

무직인 딕셔너리를 만들었다.

이후 .Series 메소드를 사용하여 시리즈화를 진행 해보았다.

pd.Series(user)

그 결과 이전에 list를 Series화 했을때와는 다르게 index가 딕셔너리 값으로 부여된 것을 확인할 수 있다!

그렇다면 .Series 함수를 통해 index를 넣어주면 어떻게 될까?

pd.Series(user, index = ['name', 'age', 'job','address'])

list때와 마찬가지로 index = 에 각 인덱스를 넣어주었다.

추가로 address라는 없는 인덱스도 넣어주었다.

그 결과

index = 에 적힌 인덱스 values를 가져와 준다.

address 인덱스는 없기 때문에 NaN을 반환!

아마 딕셔너리를 Series화 한 경우. 즉, 인덱스를 우리가 직접 부여해준 경우

index = 의 역할은 조회의 용도인 듯 하다.

0개의 댓글