인프런 커뮤니티 질문&답변
안녕하세요. iloc 관련되서 궁금한 점이 있습니다.
해결된 질문
작성
·
183
0
코드를 보는 도중 궁금해서 확인차 질문 드립니다.
iloc(train_index), iloc(text_index) 인자 값이 어떻게 반환되는지 궁금합니다.
아래 코드에서
print코드 몇 개 추가를 해서 확인을 했습니다.
train_index 기존 타입은 ndarray가 나오고
iloc로 해서 변환된 값으로는 Series 형식인데
그러면 iloc(train_index)에는 실제 iloc(100)으로 위치 인자가 입력되서 갑을 표현 할 때는 index 기준 0~99에 할당된 값을 출력한 부분인지 궁금합니다.
-----------------------------------------------------
추가 코드:
print('train_index :',train_index,type(train_index))
print('test_index:',test_index)
print('label_train:\n',label_train,type(label_train))
print('label_test:',label_test)
------------------------------------------------------
코드 :
from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=3)
n_iter=0
for train_index, test_index in skf.split(iris_df, iris_df['label']):
n_iter += 1
label_train= iris_df['label'].iloc[train_index]
label_test= iris_df['label'].iloc[test_index]
print('## 교차 검증: {0}'.format(n_iter))
print('학습 레이블 데이터 분포:\n', label_train.value_counts())
print('검증 레이블 데이터 분포:\n', label_test.value_counts())
답변 1
0
안녕하십니까,
일단 제가 질문을 정확하게 이해하지 못했습니다.
질문 중에 'iloc(train_index), iloc(text_index) 인자 값이 어떻게 반환되는지 궁금합니다' 부분과 '그러면 iloc(train_index)에는 실제 iloc(100)으로 위치 인자가 입력되서 갑을 표현 할 때는 index 기준 0~99에 할당된 값을 출력한 부분인지 궁금합니다.'가 어떤 의미인지 잘 이해를 못했습니다.
먼저 train_index를 skf.split(iris_df, iris_df['label'])의 반환값으로 위치 인덱스 값을 가지는 ndarray 입니다. 그리고 iris_df['label'].iloc[train_index] 는 iris_df['label'] 이 Series이고 여기서 iris_df['label'].iloc[train_index]는 Series에서 train_index가 가리키는 위치 인덱스 데이터를 가져오게 되므로 역시 Series입니다.
원하시는 답변이 아니면 다시 글 업데이트 부탁드립니다.
감사합니다.





