DataFrame 인덱싱

타키탸키·2021년 7월 15일
0

데이터 사이언스

목록 보기
5/26
post-thumbnail

👩‍💼 DataFrame 인덱싱

  • 인덱싱
    • DataFrame에서 원하는 부분을 선택하는 방법
  • DataFrame에서 값 하나 받아오기
    • loc [row, column]
    • 없는 인덱스를 찾으면 에러가 난다
iphone_df.loc['iPhone 8', '메모리']
iphone_df.loc['iPhone 8', '가격']
'2GB'
에러
  • row 한 줄 통째로 받아오기
    • : : 처음부터 끝까지 다 받아온다
    • column 부분 생략
    • Series: Pandas의 1차원 자료형
iphone_df.loc['iPhone X', :]
iphone_df.loc['iPhone X']
type(iphone_df.loc['iPhone X'])

pandas.core.series.Series
  • column 한 줄 통째로 받아오기
    • :
    • loc, row 부분 생략
iphone_df.loc[:, 출시일]
iphone_df['출시일']
type(iphone_df['출시일'])

pandas.core.series.Series

👩‍💼 DataFrame 인덱싱 2

  • 여러 row 받아오기
    • 리스트로 인덱싱 한다
    • 2차원이므로 자료형은 DataFrame
iphone_df.loc[['iPhone X', 'iPhone 8']]
type(iphone_df.loc[['iPhone X', 'iPhone 8']])

pandas.core.frame.DataFrame
  • 여러 column 받아오기
iphone_df[['Face ID', '출시일', '메모리']]

  • 행 슬라이싱
    • 원하는 행들이 연속으로 있는 경우
    • Python의 리스트 슬라이싱과 동일한 원리
iphone_df.loc['iPhone 8':'iPhone XS']

  • 열 슬라이싱
    • 행 슬라이싱에 비해 복잡
    • 맨 앞 : 생략하면 안 된다
iphone_df.loc[:, '메모리':'Face ID']

  • 행열 슬라이싱
    • 앞에는 행, 뒤에는 열
iphone_df.loc['iPhone 7':'iPhone X', '메모리':'Face ID']


👩‍💼 DataFrame 조건으로 인덱싱

  • Boolean 리스트로 값 받아오기
    • 0,2,3,5번 인덱스로 필터링
iphone_df.loc[[True, False, True, True, False, True, False]]

  • Boolean 리스트의 값이 행의 수보다 작다면
    • 나머지 행은 자동으로 False로 간주
    • Pandas 업데이트로 사라진 기능
  • 열에도 적용 가능
iphone_df.loc[:, [True, False, False, True]]

  • 조건으로 인덱싱 하기
    • 조건에 부합하면 True, 부합하지 않으면 False
    • 결과 자료형: pandas Series(1차원)
    • Python 리스트와 비슷한 효과
iphone_df['디스플레이'] > 5

iphone_df.loc[iphone_df['디스플레이']>5]

  • 조건 여러 개 주기
    • and: &
    • or: |
(iphone_df['디스플레이'] > 5) & (iphone_df['Face ID'] == 'Yes')

condition = (iphone_df['디스플레이'] > 5) & (iphone_df['Face ID'] == 'Yes')
iphone_df[condition]


👩‍💼 DataFrame 위치로 인덱싱하기

  • iloc
    • 위치(행렬)로 인덱싱하는 법
iphon_df.iloc[2,4] # 2번 row, 4번 column
'No'
  • 여러 값 동시에 받아오기
    • 행 리스트와 열 리스트
iphone_dfd.iloc[[1,3], [1,4]]

  • 연속된 값 받아오기
    • 리스트 슬라이싱
iphone_df.iloc[3:, 1:4]


👩‍💼 DataFrame 인덱싱 문법 정리

출처: CODEIT - 데이터 사이언스 입문
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글