새소식

Python

Python 기초 2 - Pandas 라이브러리 (1) Series

  • -

Pandas 

: 데이터 분석 및 조작을 위한 파이썬 라이브러리로, (출처: 위키백과) 시계열 분석, 데이터 정렬, 그룹화 등 조작 기능 제공, 대규모 데이터 처리에 적합함

 

1. 특징

1) DataFrame - 행-열 레이블 2차원 데이터 구조

2) Series - 1차원 레이블

 

2. NumPy와 비교

1) 공통점: for 문 없이 데이터 처리, 배열 기반 함수

2) 차이점: 메모리 내 연속적인 블록으로 저장되는 배열을 주로 다루는 NumPy에 비해, Pandas는 데이터프레임과 시리즈 등 다양한 데이터 형식을 중심으로 함수와 메서드 활용

 

1. Series

: 다양한 데이터 유형의 객체를 담을 수 있는 1차원 배열

 

1) 특징

- 행 이름을 총칭해 index (색인) 라고 한다. 

- index (행)와 name (열)의 이름을 입력할 수 있다.

#인덱스 미지정 - 기본값 적용(0~N(데이터 길이)-1)
obj=pd.Series([-1,0,2,3])

#인덱스 지정
obj=pd.Series([-1,0,2,3],index=['a','b','c','d'])

- index를 레이블로 활용해 시리즈 원본 데이터를 바꿀 수 있다.

- index도 대입 통해 변경 가능하다.

#a 인덱스 value값이 8로 바뀜
obj['a']=8

#인덱스 값이 바뀜
obj.index=['e','f','g','h']

- 불리언을 통해 필터링도 가능하다. 

obj[obj>2]

 

 

2) Series의 산술 연산

- 시리즈 ~ 숫자 간 연산

obj*2

'''
a  -2
b  0
c  2
d  4
'''

- 시리즈 ~ 시리즈 간 연산

obj+obj2

#이 때 같은 인덱스에 한 시리즈 값이 NaN이면 결과 value도 NaN (모르는 값 + a = 모르는 값)

 

3) 다양한 방법으로 Series 생성하기

a. 딕셔너리로 Series 객체 생성

fruit=['apple','berry','orange','grape')
dic_data={'apple':200,'berry'=300,'orange'=140,'grape'=600}

#리스트를 인덱스에 넣기
obj=pd.Series(dic_data, index=fruit) #인덱스 미지정해주면 딕셔너리 key 값이 인덱스 됨
obj

'''
apple   200
berry   300
orange  140
grape   600
'''

- pandas에서는 해당 인덱스에 대한 value 값을 찾을 수 없으면 누락된 값 or NaN으로 취급

- 누락된 데이터 찾는 함수: notnull, isnull (Series의 인스턴스 메서드이기도 함)

***** 해결해야할 점 - 인스턴스 메서드란 무엇인지 감을 잘 못 잡겠다

 

 

b. 리스트로 Series 객체 생성

#ser의 기본 인덱스 0,1,2,3 설정되고 ser의 밸류값에 list 값이 들어감
list1=[1,2,3,4]
ser=pd.Series(list1)

 

4) 인덱스를 레이블로 사용해 값 선택하기

#단일 값 선택
obj['b']

#여러 값 선택
obj[['a','b','c','d']]

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.