본문 바로가기
개발인생/Python

AttributeError: 'DataFrame' object has no attribute 'ix'

by jeje.91 2023. 3. 7.
반응형

"파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문" 이란 도서를 읽으면서 예제를 실행해보는 과정에서 아래와 같이 'DataFrame'에 'ix'가 존재하지 않는다는 에러가 발생했습니다.

 
조사해본 결과 pandas 공식 문서에서 0.20.0부터 .ix 인덱서는 더 이상 사용되지 않으며 보다 엄격한 .iloc 및 .loc 인덱서 사용을 권고하고 있었습니다.

pandas.DataFrame.ix — pandas 0.23.4 documentation

A primarily label-location based indexer, with integer position fallback. Warning: Starting in 0.20.0, the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers. .ix[] supports mixed integer and label based access. It is primarily

pandas.pydata.org

 
공식 문서 내용 번역

.ix[] 혼합 정수 및 레이블 기반 액세스를 지원합니다. 주로 레이블 기반이지만 해당 축이 정수 유형이 아닌 경우 정수 위치 액세스로 대체됩니다.
.ix .loc 가장 일반적인 인덱서이며 및 의 모든 입력을 지원합니다 .iloc. .ix부동 소수점 레이블 체계도 지원합니다. .ix혼합된 위치 및 레이블 기반 계층 인덱스를 처리할 때 매우 유용합니다.
그러나 축이 정수 기반인 경우 레이블 기반 액세스만 지원되고 위치 액세스는 지원되지 않습니다. .iloc따라서 이러한 경우 일반적으로 명시적으로 또는 를 사용하는 것이 좋습니다 .loc.

 
그리고 현재 제가 설치한 pandas 버전은 1.5.3 이었습니다.

 
저는 .loc를 사용해 샘플 코드를 실행해봤고 정상적으로 실행되는 것을 확인했습니다.
.loc 와 .iloc 중 프로그램의 성격에 맞게 선택해 사용하면 될 것 같습니다.

반응형

댓글