데이터 프레임 슬라이싱 혹은 데이터 선택하기가 어렵습니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
기출 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의 차이와 용법에 대한 상세한 설명이 포함된 질문입니다.
이 글들이 도움이 되시길 바라며, 이해되지 않는 부분이 있다면 추가 질문해 주시기 바랍니다. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
34강 평가지표
0
14
2
103강 작업2형 전처리(레이블인코딩 부분) 오류
0
8
2
작업형1_section14 문의
0
8
2
작업형1_연습문제 7번 관련입니다.
0
10
2
크로스 밸리데이션 질문
0
14
2
로지스틱 회귀분석 질문
0
14
2
수치형 데이터만 선택하여 푸는 경우에 오답확률이 높아질까요?
0
23
2
2유형 object 컬럼 인코딩 관련 질문
0
32
2
하이퍼파라미터 변수
0
29
2
52강 이원분산분석
0
26
2
실제시험환경에서 작업형1,2,3의 문제풀이 순서
0
31
2
독립표본검정
0
25
2
tranform을 쓰라는 힌트는 어디서 얻을 수 있나요??
0
36
2
df.describe() 사용을 자제해야할까요?
0
35
2
shape 결과에 대한 문의
0
37
2
자료 문의
0
31
2
8 회귀 11번
0
26
2
심화 강의 관련 질문
0
36
2
빈도수 구하는 것 질문
0
26
2
커리큘럼을 따로 인쇄할 수 있는 방법이 있을까요?
0
38
1
작업형2 머신러닝 문제풀이 중 test 데이터 에러 문의
0
34
2
수강연장가능문의
0
45
2
59. 11회 기출 유형 작업형 1 - 문제2 관련
0
37
2
원핫인코딩 슬라이싱 결과
0
33
2

