[Pandas] Series, DataFrame 이해하기 (2)

jae.y·2022년 10월 7일
0
  • Series : 1차원 자료구조

    • 1차원 리스트와 유사하지만 Series는 index에 이름을 부여할 수 있음

  • DataFrame : 2차원 자료구조

    • 행(row)와 열(column) 으로 이루어 짐

Series

📍series와 list의 차이

(i) 연산

nums = [1, 5, 7, 9, 11]
s_nums = pd.Series(data=nums)
s_nums * 10
>>> 
0  10
1  50
2  70
3  90
4  110
dtype: int64
  • nums * 10 를 하면, 안에 있는 요소들이 10번 반복됨
  • nums + 3 를 하면, 아래와 같은 오류 발생
    TypeError: can only concatenate list (not "int") to list

(ii) 인덱스

bunsick_price = [3000, 1500, 4000, 2000, 3500]
bunsick_list = ["떡볶이", "어묵", "순대", "닭강정", "우동"]
bunsick = pd.Series(data=bunsick_price, index=bunsick_list)
bunsick
>>>
떡볶이    3000
어묵     1500
순대     4000
닭강정    2000
우동     3500
dtype: int64
print(bunsick[0])
print(bunsick["닭강정"])
>>>
3000
2000

인덱스 값에 이름을 부여할 수 있다.
dictionary 와 유사하게 값과 이에 대응되는 인덱스 값으로 서로 연결되어 있음

(iii) index와 value

bunsick.index
>>> Index(['떡볶이', '어묵', '순대', '닭강정', '우동'], dtype='object')
bunsick.values
>>> array([3000, 1500, 4000, 2000, 3500])

각 데이터 타입은 pandas.core.indexes.base.Index, numpy.ndarray 이다.


DataFrame

📍데이터 선택 방법

  • loc : 라벨값 기반의 2차원 인덱싱
  • iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱
  • at : 라벨값 기반의 2차원 인덱싱 (하나의 스칼라 값만 찾음)

📍데이터 추가

  • Column 추가 : df['column명'] = 추가할 데이터
  • Index 추가 : df.loc['index명'] = 추가할 데이터

📍데이터 삭제

  • drop() : 데이터 삭제 함수
  • 대표적인 매개 변수
    • axis = 0 or 1 (행:0, 열:1 을 기준으로 삭제)
    • index : 특정 index 에 대해 데이터 삭제
    • columns : 특정 column 에 대해 데이터 삭제
    • inplace = True or False : 원본 데이터를 수정할 지, 말 지에 대해 선택

📍누락 데이터 처리

: Null, NaN을 처리할 때 사용하는 함수

  • dropna() : 누락된 데이터가 있는 축 제외 (매개변수 : axis, how, thresh, inplace 등)
  • fillna() : 누락된 데이터를 특정 값으로 대체 (ex: fillna(0))
  • isnull() : Null 값인지 확인 (True, False 로 반환)
  • notnull() : Null 값이 아닌지 확인 (True, False로 반환)

📍기술 통계 함수

  • sum : 합
  • mean : 평균
  • count : Null 값을 제외한 데이터의 수를 반환
  • argmin, argmax : 최소, 최대를 갖고 있는 데이터의 위치를 반환
  • quantile : 0부터 1 까지의 분위수를 계산
  • describe : 시리즈나 데이터프레임의 각 칼럼에 대한 요약 통계를 계산
  • var / std : 표준 분산 / 표준 정규 분산
  • cumsum / cumprod : 누적 합 / 누적 곱
  • pct_change : 퍼센트 변화율

Reference

profile
데이터 분린이 :)

0개의 댓글