Pandas의 2차원 데이터 객체인 DataFrame에서 원하는 데이터를 Select 하는 법을 알아보자.
데이터프레임 생성하기
먼저 상품별 가격, 판매량, 재고 정보가 담긴 DataFrame을 만든다.
import numpy as np
import pandas as pd
data = {'가격':[1000,2100,3000,700],
'판매량':[20,40,35,60],
'재고':[100,50,200,70]}
df = pd.DataFrame(data, index=['컵라면','커피','도시락','사탕'])
원하는 Column 그룹 데이터 조회하기
df["column명"] 을 통해 원하는 Column(열) 정보를 조회할 수 있다.
예를들어, '가격' column 정보를 얻고자 하는 경우 아래와 같이 쓸 수 있으며, Series 객체가 리턴된다.
df['가격']
또한 두 개 이상 복수의 column을 조회하고자 할 때는 List 형태로 조회 가능하며, Data Frame 객체가 리턴된다.
df[['가격','판매량']]
원하는 Row 그룹 데이터 조회하기
* Pandas 에서는 일반적인 2D Matrix 의 row 를 index라 칭함.
앞서 살펴본 예시와 달리 특정 row의 값을 조회하고 싶은 경우도 있을 것이다.
예를 들면 컵라면과 도시락의 상품정보만을 얻고자 할 때가 그렇다.
이 때, df.loc[defined index] 과 df.iloc[index] 를 이용하여 원하는 row 값을 얻을 수 있다.
1. loc[]
loc[]은 정의된 index 값을 이용해서 원하는 row 그룹의 데이터를 조회하는 방법이다.
하나의 row 혹은 복수개 row를 모두 조회할 수 있다.
df.loc['사탕']
df.loc[['컵라면', '도시락']]
df.loc['커피':] # 인덱스 slicing
2. iloc[]
iloc[]은 데이터프레임에 기본적으로 부여된 숫자 index 값을 이용해서 원하는 row 그룹의 데이터를 조회하는 방법이다.
loc[]과 마찬가지로 하나 혹은 복수개 row를 모두 조회할 수 있다.
df.iloc[0]
df.iloc[[0,2]]
df.iloc[0:3] # 인덱스 slicing
3. loc[]과 iloc[] 으로 column 그룹까지 조회할 수 있을까?
가능하다. loc[index, colum] , iloc[index, column] 형태로 ','를 통해 인자를 구분하여 전달하면 된다.
df.loc['커피':,['가격','판매량']] # '커피'부터 끝까지 row group의 '가격', '판매량' 정보
df.iloc[0:,1:3] # index number 0 부터 끝까지 row group의 column 1 ~ 2 정보
마무리
지금까지 Data Frame의 가장 기본적인 데이터 조회 방법에 대해 알아보았다. Data Frame은 기본적인 숫자 인덱스를 지원하기 때문에 주어진 데이터가 별도의 인덱스를 사용할 때는 숫자형이 아닌 문자형 인덱스를 사용하는 것이 편리하다.
'etc' 카테고리의 다른 글
LeetCode 937. Reorder Data in Log Files solution in python - 여러 개의 키로 리스트 정렬하기 (0) | 2021.12.07 |
---|---|
[Hadoop] - 아파치 하둡 입문(1) (0) | 2021.01.28 |
[Hadoop] - Hadoop 설치 시 macOS 원격로그인이 안 되는 경우 해결(localhost: ssh: connect to host localhost port 22: Connection refused) (0) | 2021.01.27 |
[Hadoop] - hadoop fs -ls 명령어 실행 시 No such file or directory 오류 해결 (0) | 2021.01.27 |
[Pandas] - DataFrame 생성하기 (0) | 2020.10.23 |
댓글