파이썬 Pandas를 다루기 전에 오늘은 Pandas의 기본이 되는 Pandas Series에 대해서 알아봅시다.
Pandas Series는 인덱싱된 데이터의 1 차원 배열입니다.
Numpy(Numerical Python)와 다른 점은 Numpy는 명시적 인덱스 없이 묵시적으로 '0' 부터 차례로 정수형 인덱스를 사용하여 접근하지만 Pandas Series는 명시적으로 정의된 인덱스가 존재하기 때문에 이 명시적 인덱스를 사용할 수 있다는 기본적이 차이가 있습니다.
여기서 잠깐 ! ! ☞☞ Numpy란 무엇인가?
Numpy는 Numerical Python의 약자로 대규모 다 차원 배열 뿐만 아니라 수치 계산을 쉽고 효율적으로 처리할 수 있도록 지원하는 파이썬의 라이브러리이다.
Pandas Series는 리스트나 배열을 이용하여 만들 수 있는데, 다음과 같이 명시적인 인덱스를 이용하여 Pandas Series를 만드는 간단한 예제 하나를 실행시켜 봅시다.
첫 번째 열에는 'a', 'b', 'c', 'd' 로 된 인덱스(Index)와 두 번째 열에는 일련의 값들로 구성되어 있음을 알 수 있다.
Pandas Series의 인덱스와 일련의 값들은 각각 values와 index 라는 속성으로 아래와 같이 접근이 가능합니다.
Series의 values는 1 차원 배열인 Numpy와 동일하기 때문에 대괄호, '[ ]'를 사용하여 Series의 values 각각의 요소에 접근이 가능합니다.
우리가 흔히 사용하고 있는 파이썬의 딕션너리(Dictioary)처럼 동작하는 것을 볼 수 있습니다.
새로운 인덱스에 새로운 값을 추가하기 위해서도 딕션너리에서 새로운 값은 추가할 때와 동일한 방법으로 가능합니다.
또한 Series에서 명시적 인덱스를 사용하여 슬라이싱도 가능합니다.
(중요)명시적 인덱스를 사용하는 Series에 묵시적 인덱스(정수형 인덱스)를 사용해도 접근이 가능합니다.
위의 예제에서 첫 번째 값을 가져오기 위해 'a' 라는 명시적 인덱스가 아닌 정수 영(0)을 사용하여도 접근 가능합니다.
묵시적 정수 인덱스를 이용한 슬라이싱도 가능합니다.
단, 묵시적 인덱스를 이용한 슬라이싱에서는 마지막 인덱스가 슬라이스에서 제외됩니다.
명시적 인덱스는 마지막 인덱스를 포함합니다. 사용 시 주의가 필요하고 조금 혼란스러울 수 있습니다.
다음 예제를 천천히 살펴봅시다.
정수형의 명시적 인덱스를 이용하여 Series를 만들었습니다.
data[1]이라고 수행하면 어떤 값이 출력 될까요?
'a'가 출력 될 것입니다.
그러면 data[1:3] 같은 슬라이싱의 결과는 어떻게 될까요?
명시적 인덱스를 사용하는 것일까요? 묵시적 인덱스를 사용하는 것일까요?
결론은 묵시적 인덱스를 적용됩니다.
Pandas의 Series 객체 뿐만 아니라 DataFrame 이라는 객체도 마찬가지로 정수를 인덱스로 사용할 경우 특별한 주위가 필요합니다.
이러한 혼선을 방지하고자 Pandas는 인덱싱 방식을 명시적인지, 묵시적인지 명확하게 사용할 수 있도록 몇 가지 인덱서(Indexer) 속성을 제공하고 있습니다.
3 가지 속성이 있었는데 최근 ix 라는 속성은 삭제되어 현재는 2가지 속성에 대한 기능만 제공하고 있습니다.
1. loc : 명시적 인덱스 사용할 때 사용합니다.
2. iloc : 묵시적 인덱스 사용할 때 사용합니다.
3. ix : 최근 Series와 DataFrame에서 삭제된 기능입니다.(pandas.__version__ 1.0.0 부터 삭제됨)
Series에서 사용하는 매서드를 아래와 같습니다.
Series 매서드 |
설명 |
append |
2개 이상의 시리즈 연결 |
describe |
요약 통계량 계산 |
drop_duplicates |
중복값이 없는 시리즈 반환 |
equals |
시리즈에 해당 값을 가진 요소가 있는지 확인 |
get_values |
시리즈 값 구하기, values 속성과 동일함 |
isin |
시리즈에 포함된 값이 있는지 확인 |
min |
최소값 반환 |
max |
최대값 반환 |
mean |
산술 평균 반환 |
median |
중간 값 반환 |
replace |
특정 값을 가진 시리즈 값을 교체 |
sample |
시리즈의 임의의 값을 반환 |
sort_value |
값을 정렬 |
to_frame |
시리즈를 데이터프레임으로 변환 |
이상 Pandas의 기본이 되는 Series에 대해서 알아보았습니다.
이 부분이 잘 정리되어야 Pandas의 핵심인 DataFrame 객체를 이해하고 정복하는데 많은 도움이 될 것입니다.
혹시 오늘 정리한 부분에 대해서 궁금한 점 있으면 댓글 주세요.
'파이썬 기초' 카테고리의 다른 글
나는 엑셀 대신 파이썬을 사용한다. (4) | 2020.07.15 |
---|---|
파이썬 Pandas 오늘은 DataFrame 제대로 이해하기 (0) | 2020.07.10 |
주피터 노트북(Jupyter Notebook) 매직 명령어 이용하기 (0) | 2020.06.30 |
주피터 노트북(Jupyter Notebook) Markdown 기능 및 수식 입력 방법 (0) | 2020.06.26 |
파이썬 활용 주식 일봉 데이터 받기 및 챠트 그리기 1 (4) | 2020.06.19 |