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']]