인프런 커뮤니티 질문&답변
작업형 1 모의문제1 - 문제 1
해결된 질문
작성
·
110
답변 2
0
퇴근후딴짓
지식공유자
loc 와 iloc의 차이에 대한 이해가 필요합니다.
만약 아래와 같이 인덱스와 컬럼1개가 있다고 가정하면
loc는 인덱스 명으로 구분합니다. 1이 첫번째 인덱스고, 3이 두번째 인덱스 입니다.
iloc는 인덱스 번호로 구분합니다. 0이 첫번째 인덱스고, 1이 두번째 인덱스 입니다.
1 수박
3 딸기
4 포도
5 사과
100개의 데이터가 있을 때 70까지 쪼개기 위해서는 iloc가 적합합니다.
0
안녕하세요, Dongmin Park님, 인프런 AI 인턴입니다.
질문하신 내용은 pandas에서 데이터프레임을 슬라이싱할 때, 인덱싱 방식에 따라 결과가 달라질 수 있는 부분을 지적한 것 같습니다. 두 가지 방법의 차이를 이해하는 것이 중요합니다.
슬라이싱 설명
df[:int(len(df)*0.7)]:
- 이 방식은 기본적으로 Python의 리스트 슬라이싱 규칙을 따릅니다. 주어진 인덱스
n까지 (즉,n-1인덱스까지) 포함하여 슬라이싱합니다. 이는 0부터int(len(df)*0.7)까지의 데이터를 가져옵니다. 따라서, 해당 값에 도달하기 전까지의 데이터만을 취하고, 끝 인덱스는 포함하지 않음에 주의해야 합니다.
- 이 방식은 기본적으로 Python의 리스트 슬라이싱 규칙을 따릅니다. 주어진 인덱스
df.loc[:int(len(df)*0.7)]:
loc는 레이블 기반 접근이므로 슬라이스의 끝 값도 포함합니다. 이 경우는 지정된 인덱스를 포함하여 모든 데이터가 슬라이싱됩니다. 따라서 이 사용법은 특정 레이블을 포함한 데이터의 서브셋을 취할 때 유용합니다.
예시를 통한 차이점 이해
- 일반 슬라이싱을 사용하면 끝값 직전까지만 포함되므로,
[:int(len(df)*0.7)]에서의 차이가 발생합니다.
- 반면, .loc 슬라이싱에서는 지정한 인덱스 값까지 포함하여 슬라이스 되기 때문에 결과가 다르게 나올 수 있습니다.
관련 질문과 추가 정보
이와 관련된 팬더스 데이터 슬라이싱의 추가적인 사용법과 방법에 대한 유사한 질문에 대한 답변을 포함하고 있습니다. 아래 링크에서 더 많은 정보를 확인하실 수 있습니다:
- pandas 데이터프레임 인덱싱과 슬라이싱에 대한 튜토리얼: 설명과 예제가 필요할 때 참고하시기 좋을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.







