pandas Series 의 마지막 시간이다. pandas Series는 이어 공부할 DataFrame에서도 사용되는 개념이기 때문에 잘 익혀보도록 하자.
import numpy as np
import pandas as pd
우선 간단하게 pandas Series를 만들어보자.
# <in>
s = pd.Series(np.arange(100,105),['a',b','c','d','e'])
s
# <out>
a 100
b 101
c 102
d 103
e 104
dtype: int64
지난 시간에 공부했지만, 값을 바꾸기 위해선 Series의 인덱스 명만 알면 된다. 또한 값이 없는 경우 해당 인덱스와 값이 추가되는 것도 배웠다.
인덱스 'a' 의 value가 바뀌었고 인덱스 'k'와 그 값이 추가 되었다.
drop()함수를 사용해 인덱스 k를 삭제해보자.
# <in>
s = pd.Series(np.arange(100, 105), ['a', 'b', 'c', 'd', 'e'])
s['a'] = 200
s['k'] = 300
s
s.drop('k', inplace = True)
s
# <out>
a 200
b 101
c 102
d 103
e 104
dtype: int64
인덱스 'k'의 값이 삭제된 것을 확인할 수 있다. 여기서 inplace parameter의 값을 True로 해주지 않으면 default 값이 False이기 때문에 'k' 인덱스가 삭제된 새로운 series를 반환할 뿐 원본에는 변화를 주지 않는다.
앞으로 배울 DataFrame에서의 함수도 대부분 본 객체에 변화를 주는 것이 아닌, 새로운 객체를 만들어 반환하게 될 것이다.
떄문에 새로운 객체가 아닌 원본에 대한 변화를 원한다면 inplace parameter를 입력해줘야 할 것이다. 이는 굉장히 중요한 개념이다.
이번엔 multiple한 값을 한 번에 update 해보자.
# <in>
s = pd.Series(np.arange(100, 105), ['a', 'b', 'c', 'd', 'e'])
s[['a','b']] = [300, 900]
# <out>
a 300
b 900
c 102
d 103
e 104
dtype: int64
slicing 역시 Python list, numpy ndarray와 동일한 개념이 적용된다.
# <in>
s = pd.Series(np.arange(100, 105), ['a', 'b', 'c', 'd', 'e'])
print(s1[1:3])
print(s2['c':'d'])
# <out>
b 101
c 102
dtype: int64
c 102
d 103
dtype: int64
숫자 베이스인 indexing에서는 동일한 개념이 적용되지만, 인덱스가 문자열인 경우 인덱스 명으로도 인덱싱이 가능하다.
추가로 문자로 인덱싱을 하는 경우 숫자와 다르게 마지막을 포함한다.
'python > pandas' 카테고리의 다른 글
7. pandas DataFrame - index, column의 이해 (0) | 2023.02.17 |
---|---|
6. pandas DataFrame - 데이터 살펴보기 (0) | 2023.02.17 |
4. pandas Series - boolean selection (0) | 2023.02.17 |
3. pandas Series 연산 (0) | 2023.02.17 |
2. pandas - series 함수 (0) | 2023.02.17 |