Python Pandas-Series

HGY·2023년 6월 19일
0

Python

목록 보기
9/13

Pandas

  • Series 데이터 구조 : 1차원
    • 인덱스(index) + 값(value) 구조
    • 컬럼명(열이름)이 존재하지 않는다
  • DataFrame 데이터 구조 : 2차원
    • 행과 열을 가지는 표와 같은 형태
    • 서로 다른 종류의 자료형을 저장할 수 있다
    • 1차원의 Series가 모여 2차원의 DataFrame이 된다.
import pandas as pd

// Pandas 호출

Series

1차원 형태의 데이터 구조
인덱스와 값이 1:1로 구성되어있는 형태

  • Series 생성
    리스트를 활용하여 Series 생성
    인덱스값과 데이터는 개수가 같아야 한다.(1대1 대응)
population = pd.Series([9904312,3448737,2890451,1466052],
         index = ['서울','부산','인천','광주'])
         
// 서울    9904312
// 부산    3448737
// 인천    2890451
// 광주    1466052
// dtype: int64
  • 데이터 확인 .values
population.values

// array([9904312, 3448737, 2890451, 1466052], dtype=int64)
// Series 데이터의 값들은 넘파이 배열 형태이다.
  • 인덱스 값 확인 .index
population.index

// Index(['서울', '부산', '인천', '광주'], dtype='object')
  • 데이터 타입 확인 .dtype
population.dtype

// dtype('int64')
  • 이름 지정 .name = ''
population.name = '인구수'

// 서울    9904312
// 부산    3448737
// 인천    2890451
// 광주    1466052
// Name: 인구수, dtype: int64
  • 인덱스 이름 지정
population.index.name = '도시'

// 도시
// 서울    9904312
// 부산    3448737
// 인천    2890451
// 광주    1466052
// Name: 인구수, dtype: int64

Series 인덱싱&슬라이싱

리스트의 인덱싱&슬라이싱과 동일하게 사용한다

  • 인덱싱
population[[0,3,1]]
population[['서울','광주','부산']]

// 도시
// 서울    9904312
// 광주    1466052
// 부산    3448737
// Name: 인구수, dtype: int64
  • boolean 인덱싱, 기호 &
// 다중조건인 경우에는 & 기호를 사용하고 반드시 소괄호()로 우선순위 지정해야 함
population[(population > 2500000) & (population < 5000000)]
  • 슬라이싱
// Series명[시작인덱스:끝인덱스(포함x)]
print(population[1:3])

// 인덱스 이름으로 슬라이싱 할 때는 끝값포함
print(population['부산':'인천'])

딕셔너리로 Series 생성

딕셔너리는 Key와 Value로 구성
Key 값은 index
Value 값은 value

data = {'피카츄':9631,
'파이리':8546,
'꼬부기':1046,
'나옹이':10}

pokemon = pd.Series(data)
pokemon

// 피카츄    9631
// 파이리    8546
// 꼬부기    1046
// 나옹이      10
// dtype: int64

Series 연산

기본적인 연산은 Numpy배열과 동일하게 모두 가능하다.

NaN 값이 존재 하는 Series의 연산

논리형으로 출력됨

  • 비어있지 않은 데이터들만 보고 싶다면? -> notnull()
up.notnull() 
  • 비어있는 데이터만 보고싶다면? -> isnull()
up[up.isnull()]

Series 데이터 수정 추가 삭제

  • 수정
    기존에 있는 index를 활용하여 값 수정
// Series명['수정할 인덱스 명'] = 수정할 값

ch['나옹이'] = 60
  • 추가
    기존에 없던 인덱스 명칭을 활용하여 값 추가
// Series명['추가할 인덱스 명'] = 추가할 값

ch['또가스'] = 55
  • 삭제
    del 키워드 사용
del ch['리자몽']

// 없는 값 삭제 시도시 오류 출력
profile
바보 개발자 지망생

0개의 댓글

관련 채용 정보