빅분기2회기출문제 1유형 2번문제
17
작성한 질문수 6
df_75 = df.loc[:(len(df) * 0.75) - 1,:]
전이렇게했습니다 데이터셋을
-1을해주지않으면 150개만가져와야하는데 처음부터 150번행까지가져와버리는현상이일어나지않나요 그럼 150개가아니라 151개라고생각합니다 맞나확인부탁드립니다. 문젲수정도 필요한것같구요
답변 2
0
넵! 좋은 질문이에요
-1을 쓰는 이유 정확히 파악하셨어요!
df.loc는 끝값을 포함하기 때문에 -1 안 하면 151개가 맞아요.
다만 더 안전한 방법을 알려드릴게요.
시험 중에 이런 코드가 앞에 있으면 어떻게 될까요?
df = df[df['나이'] > 20] # 필터링
필터링 후에는 인덱스가 0, 1, 2, 3… 이 아니라 5, 7, 11… 처럼 뒤섞여요.
이 상태에서 df.loc[:149] 하면 150개가 아닌 엉뚱한 개수가 나와요.
이럴 때 쓰는 게 바로 iloc예요.
df_75 = df.iloc[:int(len(df) * 0.75)]
iloc는 인덱스 번호가 아니라 순서로 찾아요.
“앞에서 150번째까지 주세요” 라고 하는 거라서 인덱스가 뒤섞여도 항상 정확하게 150개를 가져와요.
그리고 -1도 필요 없어요. iloc는 끝값을 포함하지 않거든요!
앞으로 iloc 쓰는 습관 들이시면 시험에서 훨씬 안전해요
0
안녕하세요, 인프런 AI 인턴입니다. Ilha Hwang님께서 질문주신 내용에 대한 답변을 드리겠습니다.
데이터 슬라이싱에서의 인덱싱
데이터프레임을 특정 퍼센테이지만큼 슬라이싱할 때, Python의 인덱싱 특성을 이해하는 것이 중요합니다. df.loc[:end, :] 구문은 end 인덱스까지 포함하는 슬라이싱을 수행합니다. 이로 인해, len(df) * 0.75를 단순히 사용할 경우에는 해당 인덱스까지 포함한 151개 데이터가 선택될 수 있습니다. 따라서, -1을 통해 인덱스를 조정하여 150개 요소를 선택하도록 하신 것은 올바른 접근입니다.
구체적 예시와 설명
df.loc[:(len(df) * 0.75) - 1, :]에서- 1을 빼주는 이유는 정확히 75%에 해당하는 데이터 수를 맞추기 위함입니다. Python에서 슬라이싱 시, 끝 인덱스를 포함하기 때문에 종료 인덱스를 조정해야 합니다.
추가적인 참고 자료
기존에 유사한 질문과 답변이 게시된 자료를 참고하시면, 더 많은 예제와 설명을 통한 학습이 가능합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
변수명 한글로 써도 될까요
0
17
1
변경된 체험환경 작업형3번질문이요
0
30
2
수업노트는 어디서 볼 수 있나요?
0
31
2
accuracy_score() 사용 시 인자 순서 오류 관련
0
31
2
정규화 여부
0
47
1
코드 자동완성 or 추천 기능
0
47
2
7회 기출문제 작업형3유형 2번째문제
0
52
2
수강 기한 연장 문의
0
108
4
코랩 기본 사용법 문의
0
82
1
8회 작업형1 문제2
0
78
2
4회 2유형 1번 문제
0
61
1
다중 선형 회귀 상수항 추가 관련 질문
0
102
2
10회 작업형1번문제2번 문제 풀이 틀림
0
89
2
8회 1유형 1번 문제
0
86
1
답변 항상 감사드립니다. 질문 있습니다.
0
89
2
원핫인코딩 이후 칼럼 불일치 문제
0
80
2
6회 1유형 3번 문제
0
78
1
코딩 방법에 따른 채점 기준에 관하여 질문있습니다.
0
97
1
데이터 파일들은 어디서 다운받을 수 있나요?
0
99
2
선형회귀분석 질문
0
62
2
링크가안보여요 어디에올라와있는거죠대체 ? 구글코랩파일이요
0
107
4
범주형 인코딩
0
108
1
원핫인코딩시 라벨링질문
0
92
1
인코딩 질문!!
0
90
1





