행을 추출할 때
1) loc(iloc) 를 이용한 indexing
`.loc`와 `.iloc`를 쓸 수 있는데, `.loc`는 정수가 아닌 값을, `.iloc`는 정수값을 넣어줍니다.
import pandas as pd
d1=pd.DataFrame(data=[['3000원','2500원','1500원'],['2800원','2700원','1300원']],
index=['A마트','B마트'],columns=['우유','맥주','요거트'])
d1
여기서 행을(A마트만) indexing 해보자. Series로 출력됩니다.
d1.loc['A마트']
참고로, 열을 인덱싱하려면 아래와 같이 해주면 됩니다.
d1.loc[:,'우유']
`Fancy Indexing`을 이용하게 되면 떨어져 있는 복수의 행도 Indexing할 수 있습니다.
2) slicing
slicing을 할 때는 범위가 기존 python의 slicing과 약간 다른데, `.loc`을 통한 행의 indexing에서는 [start:end] 즉 start 이상 end 이하가 됩니다. 파이썬에서 뒷 값 미만이 되는 것과 약간 차이가 있습니다.
열을 추출할 때
DataFrame에서 `key값`은 `column`에 대응합니다. 앞서 `.loc`으로 억지로 추출하는 것을 예로 들었지만 기본적으로 dictionary에서 추출하듯이 column의 이름을 통해 Indexing할 수 있습니다.
1) Indexing
d1['우유']
2) 마찬가지로 Fancy Indexing이 가능합니다.
d1[['우유','요거트']] #Fancy Indexing
3) Slicing
Slicing을 할 때는 `.loc`를 이용해야만 합니다. 그냥 dictionary의 slicing처럼 하면 아무 값도 안나옵니다. 이 때, 앞서 행에서 열을 추출할 때 처럼 slicing시 행 자리에 `:`를 넣어 2차원으로 slicing해줘야 합니다. `loc를 사용할 때는 항상 자리를 잘 지켜야 합니다.`
d1.loc[:,'맥주':'요거트']
Boolean Indexing
`Boolean Indexing`은 조건대로 Indexing을 할 수 있는 강력한 기능입니다. 이전글에서 썼던 `titanic.csv`로 Boolean Indexing을 수행해보겠습니다.
1) 조건식으로 Indexing하기
`pd.read_csv`로 파일을 읽었습니다.
아래와 같이 조건식을 작성하면 Boolean value를 가지는 Series를 반환합니다.
df.Age>25
2) DataFrame 재구성하기
위의 리턴 값을 다시 df[]안에 넣어주면 필터링된 DataFrame을 얻을 수 있습니다.
df[df.Age>25]
'Deep Learning' 카테고리의 다른 글
YOLOv3를 활용한 전동킥보드 헬멧 미착용 감시 시스템 만들기 2 (0) | 2021.05.08 |
---|---|
YOLOv3를 활용한 전동킥보드 헬멧 미착용 감시 시스템 만들기 1 (0) | 2021.05.08 |
Batch Normalization, Transfer Learning (0) | 2020.09.19 |
Hyper parameter Tuning (0) | 2020.09.13 |
Pandas 기초 1: Series와 DataFrame 다루기 (2) | 2020.09.01 |
Metrics (0) | 2020.08.31 |
[Dacon] 공유된 코드를 통해 선수지식 학습하기 (0) | 2020.08.30 |
[데이콘]Dataset 받아오기 (1) | 2020.08.26 |