데이터 프레임 슬라이싱 혹은 데이터 선택하기가 어렵습니다.
41
작성한 질문수 2
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
기출 9회 작업형 1에서 보면,
grouped[1] 을 사용해서 지역코드와 성별로 그룹된 데이터프레임에서 1에 해당하는 컬럼명과 데이터를 선택합니다.
그런데 저는 이제까지 연습할 때 데이터프레임에서 열을 선택하기 위해 df[숫자]를 쓰면 행이 선택이 되었고, df[: , 숫자]를 입력하면 에러가 났었습니다. 그래서 df에서는 loc나 iloc를 사용해서 슬라이싱 혹은 인덱싱을 하고 있었습니다. 그런데 본 데이터에서는 오히려 loc와 iloc를 사용하면 에러가 납니다. 차이가 무엇인가요?
해당 데이터에서는 왜 컬럼 선택으로 출력이 되는 건가요?
답변 2
0
grouped[1]이 열 선택인 이유
핵심은 .unstack() 이후 컬럼이 무엇으로 바뀌었는가입니다.
df.groupby(['지역코드', '성별'])['총대출액'].sum()이 시점은 MultiIndex Series입니다:
지역코드 성별
A 1 5000
2 3000
B 1 4000
2 6000
.unstack() # 성별(1, 2)이 행 → 열로 이동이 시점부터 DataFrame으로 바뀌고, 컬럼명이 정수 1, 2 가 됩니다:
성별 1 2
지역코드
A 5000 3000
B 4000 6000
unstack() 후 컬럼명이 1, 2 (정수)로 바뀌었기 때문에, grouped[1]은 컬럼명 1을 가진 열을 선택하는 것입니다.
왜 loc/iloc가 에러나는가?
grouped.iloc[1] # → 두 번째 행(지역코드 B)을 선택 → 의도와 다름
grouped.loc[1] # → 인덱스 라벨 1을 찾는데, 인덱스는 지역코드(문자) → KeyError
loc/iloc로 열을 선택하려면:
grouped.loc[:, 1] # 가능하지만 번거로움
grouped.iloc[:, 0] # 첫 번째 열
정리
일반 df[숫자] → 행 선택 (인덱스 기반)
컬럼명이 정수인 df[숫자] → 열 선택 (컬럼명 기반)
unstack()이 성별 값(1, 2)을 컬럼명으로 올려놓았기 때문에, grouped[1]은 자연스럽게 열 선택이 되는 것입니다. 우리가 df['이름'] 과 같이 사용하는 것처럼요!
0
안녕하세요, 인프런 AI 인턴입니다. lrkink님, 데이터 프레임의 슬라이싱과 열 선택에 대해 혼란스러워하시는 것 같습니다. 이를 해결하기 위해 유사한 질문들을 살펴보았습니다.
1. Pandas의 데이터 선택 방식에 대해 설명드립니다:
기본적으로
df[number]사용 시, 이는 행 인덱스를 통해 데이터를 선택하는 것이 아니라, 열의 라벨을 통해 데이터를 선택하려고 합니다. 따라서df[숫자]형식은 일반적으로 잘못된 사용법입니다.df[:, number]사용 시: 이는 NumPy의 배열 슬라이싱 방식으로, Pandas에서는 지원하지 않아 에러가 발생합니다.loc와iloc를 사용할 때:loc은 레이블 기반 인덱싱을 지원합니다. 즉, 인덱스와 열 이름으로 접근합니다.
iloc은 위치 기반 인덱싱으로, 정수 인덱스를 사용하여 정확한 위치의 데이터에 접근합니다.
2. 필사 데이터셋과의 사용 차이점:
- 주로 loc나 iloc를 사용하게 되면, 데이터셋에 정확히 열 이름이나 인덱스가 정해져 있어야 합니다. 하지만 모든 데이터프레임이 row 인덱스와 대표 리더라는 형식을 가지고 있는 것은 아니며, 그 구조가 다를 수 있기 때문에 특정 데이터프레임에서는 loc나 iloc 사용 시 에러가 발생할 수 있습니다.
3. 비슷한 질문 사례와 관련된 URL:
아래는 데이터 선택 및 슬라이싱과 관련된 유사한 질문들입니다:
- 타이타닉 loc: loc 사용에 대한 설명과 대안적인 접근법을 제공한 게시물입니다.
- 5회 기출유형(작업형1) 3번: loc와 iloc의 차이와 용법에 대한 상세한 설명이 포함된 질문입니다.
이 글들이 도움이 되시길 바라며, 이해되지 않는 부분이 있다면 추가 질문해 주시기 바랍니다. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강연장요청 문의
0
24
1
아무래도 다음 시험 연장은 어렵겠죠?
0
62
2
빅분기 12회 결과 관련 문의
0
79
1
책이랑 강의랑 순서나 예제가 다른것 같네요
0
65
2
수강연장 문의
0
71
2
재검토 요청 방법 좀 알려주셔요...-.-;;
0
93
2
12회 실기 질문(작업형 2)
0
79
2
뒤로가기 버튼 같은 것이 있나요?
0
53
1
강의 연장 문의
0
79
2
출력값 질문
0
58
2
수업노트가 어디에 있나요?
0
49
1
실기시험 제출관련
0
212
3
6.20 작업형 2 과적합
0
209
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
71
2
로지스틱회귀, 회귀
0
60
2
회귀 문제를 풀때 질문입니다.
0
69
1
불균형 처리 후 성능이 더 낮아졌다면,
0
79
2
실기 체험 제2유형 에러 문의
0
77
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
67
2
3번문제 등분산 가정
0
60
2
작업형3 target 형 변환 질문
0
48
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
65
3
원핫인코딩과 레이블 인코딩에서 concat
0
70
2
제2유형 질문입니다.
0
58
2





