PANDAS
- 데이터 분석 기능을 재공하는 라이브러리
- 1차원 배열 : Serises
- 2차원 배열 : DataFrame (서로다른 타입의 시리즈들이 모여있는것)
from pandas import Series, DataFrame
import pandas as pd
1차원 배열 : Serises
- 1차원 배열
- 인덱스(색인) 배열의 데이터에 연관된 이름을 가지고 있다.
- 레코드형식하고 의미가 비슷하다.
- R은 벡터 자료형하고 비슷하다.
- 운영체제가 64라서 데이터 타입이 int64로 나온다.
- object = 문자형
시리즈(Series) 생성 및 확인
s1 = Series([10,20,30,40,50])
s1
type(s1)
s1.astype
데이터 타입이 다른 시리즈 생성 및 확인
s1 = Series(['10',20,30,40,50])
s1
type(s1)
s1.astype
데이터 타입이 다른 시리즈의 연산
s1+10 # 문자형이므로 +가 안된다.
s1*5 # *은 되지만 좋은 방법이 아니다.
시리즈의 데이터 타입 변환하기
s1 = s1.astype('int')
s1.astype
s1 = s1.astype('int64')
s1.astype
시리즈의 index와 value 따로 뽑기
s1.index
s1.values
인덱스 수정
s1.index = ['a','b','c','d','e']
s1
시리즈의 연산작업
시리즈는 작접 연산작업이 가능하다.
s1+10
s1-10
s1*10
sl/3
s1//3
s1%3
리스트는 불가능하다.
lst = [1,2,3]
type(lst)
lst+10 # 리스트 변수는 연산작업을 이렇게 수행하면 오류남
[i+10 for i in lst] # 리스트 값을 계산하려면 for문 사용
시리즈의 인덱싱과 슬라이싱
인덱싱
s1['a']
s1[['a','b']]
s1[0]
슬라이싱
s1[0:3]
조건에 맞춰 값 추출
s1[[True,False,True,False,True]] #True 위치의 값만 뽑아내기
s1>20
s1[s1>20]
인덱스 값의 수정, 추가, 삭제
원래 있는 값 수정
'a' in s1
s1['a'] = 100
s1['a']
s1[0] = 10
s1[0]
없는 값 추가
'f' in s1
s1['f'] = 100
s1
삭제
del s1['f']
s1
!! 주의 사항 !!
빈문자열로 바꾸면 데이터 타입이 object가 된다.
s1
s1['a'] = ''
s1
이때 빈문자열을 숫자로 바꿔도 그대로 object타입이다.
이럴땐 직접 데이터 타입을 바꿔주어야 한다.
s1['a'] = 10
s1
s1 = s1.astype('int64')
s1
조합 데이터 타입을 시리즈로 변환하기
리스트를 시리즈로 바꾸기
lst = [10,20,30]
type(lst)
s2 = Series(lst)
type(lst)
type(s2)
튜플을 시리즈로 바꾸기
t = (10,20,30)
type(t)
s3 = Series(t)
type(s3)
딕셔너리를 시리즈로 바꾸기
dict = {'a':10, 'b':20, 'c':30}
type(dict)
s4 = Series(dict)
type(s4)
세트는 시리즈로 바로 변환할수 없다.
s = {10,20,30}
type(s)
s5 = Series(s)
type(s5)
세트 -> 리스트 -> 시리즈 순으로 바꿔야한다.
s = {10,20,30}
type(s)
s5 = Series(list(s))
type(s5)
NaN 값
NaN(Not aNumber) : 누락된 값, NA
딕셔너리안에서 필요한 것만 뽑아내기
dict = {'a':10, 'b':20, 'c':30}
type(dict)
s6 = Series(dict,index=['a','c'])
s6
만약 값이 없으면 NaN으로 표현됨
dict = {'a':10, 'b':20, 'c':30}
type(dict)
s7 = Series(dict,index=['a','c','d'])
s7
NaN값이 들어간 데이터 타입
s7.dtype
NaN값 체크 및 확인 방법
pd.isnull(s7)
s7[pd.isnull(s7)]
또 다른 NaN값 체크 및 확인 방법
s7.isnull()
s7[s7.isnull()]
NaN값이 아닌것 체크 및 확인
pd.notnull(s7)
s7[pd.notnull(s7)]
s7.notnull()
s7[s7.notnull()]
'컴퓨터 > 파이썬' 카테고리의 다른 글
파이썬(Python) - Series와 DataFrame의 사칙연산 (0) | 2020.03.10 |
---|---|
파이썬(Python) - Pandas와 DataFrame (0) | 2020.03.10 |
파이썬(Python) - collections.Count() / map (0) | 2020.02.27 |
파이썬(Python) - 파일 열기 모드 / with문 (0) | 2020.02.26 |
파이썬(Python) - 날짜 / 달력 관련 라이브러리 (0) | 2020.02.25 |