loc, iloc 둘 다 모두 인덱싱을 위한 것인데
loc는 라벨을 기반으로 하는 인덱싱 번호입니다
예를들어서 행 이름이나 열 이름을 사용할떄 쓰입니다.
data = {
"메뉴":['아메리카노','카페라떼','카페모카', '바닐라라떼', '녹차', '초코라떼', '바닐라콜드브루'],
"가격":[4100, 4600, 4600, 5100, 4100, 5000, 5100],
"할인율":[0.5, 0.1, 0.2, 0.3, 0, 0, 0],
"칼로리":[10, 180, 420, 320, 20, 500, 400],
}
data = pd.DataFrame(data)
data.to_csv('data.csv', index=False)
를 가정한다고 하면 판다스로 표가 그려지겠죠
메뉴 | 가격 | 할인율 | 칼로리 | |
0 | 아메리카노 | 4100 | 0.5 | 10 |
1 | 카페라떼 | 4600 | 0.1 | 180 |
2 | 카페모카 | 4600 | 0.2 | 420 |
3 | 바닐라라떼 | 5100 | 0.3 | 320 |
4 | 녹차 | 4100 | 0.0 | 20 |
5 | 초코라떼 | 5000 | 0.0 | 500 |
6 | 바닐라콜드브루 | 5100 | 0.0 | 400 |
이런식으로 되겠죠
여기서 loc를 사용하려면
df.loc[열(row), 행(column)] 을 사용하면 됩니다.
예를들어서 내가 녹차의 할인율이 궁금하다?
df.loc[4, '할인율']
0.0% 인것을 확인할 수 있습니다.
아메리카노 자체가 궁금하다?
df.loc[0]
이렇게 나옵니다.
여기서 만약에 내가 카페모카의 메뉴와 가격을 둘 다 보고싶다면?
df.loc[2, '메뉴', '가격']을 했는데 자꾸 에러가 발생 했습니다.
아니 2열에있는 메뉴와 가격을 보고싶은건데 왜? 자꾸? 에러지? 하고보니
인덱스가 많대요 그럼 인덱스가 1개라는건데..
그래서 각 1개씩 나올 수 있게 2줄로 작성을 해주었습니다.
df.loc[2, '메뉴']
df.loc[2, '가격']
결과는 4600
에러는 뜨지않았지만 내가 원하는 결과값이 아니죠.
슬라이싱이라는 카테고린데 왜 하나씩 썼지? 라는생각으로
df.loc[2, '메뉴':'가격']
로 다시 작성했는데
잘 나옵니다.
공부한 점
- str의 형태도 :(슬라이싱)을 사용할 수 있다.
사실 뭔가 한글이고 문자라서 어색하게 느껴졌는데 가능하다는것을 알게되었습니다.
iloc는 위치기반 인덱싱 입니다.
데이터프레임의 정수 인덱스 위치를 사용해요
행, 열 순서에 따라서 선택하고 0부터 시작하는 숫자를 사용합니다.
아! 그리고 여기서 loc, iloc 주의할점이있는데
lic는 마지막을 포함하고 iloc에서는 슬라이싱 마지막을 포함하지 않습니다!!!!! <<이건 내가 많이 틀릴거같아서
잘 숙지해두려고 합니다.
다시 예시로
라는 표가 있다고 하고
카페모카, 메뉴,가격을 알고싶을때 iloc를 써서
df.iloc[2, 0:3]
이렇게 원하는 데이터를 뽑아낼 수 있습니다.
그리고 카페라떼와 카페모카의 전체를 보고싶다면
df.iloc[1:3, :]
: (전체를 뜻함)을 가져올 수 있습니다.
위에서 언급했듯이 iloc는 슬라이싱의 맨 마지막을 포함하지 않습니다~
그림으로 그려보자면
https://www.datamanim.com/dataset/99_pandas/pandasMain.html
판다스 연습 튜토리얼 — DataManim
판다스 연습 튜토리얼 9회 빅분기 실기 대비 강의, 블로그만으로는 도저히 안되겠다ㅠ 하시는분들에게 추천합니다. 아 제발 광고 한번씩만 눌러주세요 ㅠㅠ 두번은 더 좋구요 빅분기, adp 정보공
www.datamanim.com
'자격증 > [빅분기] 빅데이터분석기사' 카테고리의 다른 글
[작업형1] TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType' (1) | 2024.10.10 |
---|---|
[작업형1] TypeError: agg function failed [how->mean,dtype->object]간단하게 numeric_only=True 쓰세요 (0) | 2024.10.09 |
[작업형1] print(df) vs df (1) | 2024.10.03 |
[작업형1] drop 에러 (1) | 2024.10.01 |
[빅분기] 빅데이터 분석기사 필기 정리자료(2) (0) | 2024.08.04 |