안녕하세요.
오늘은 파이썬에서 최대·최솟값의 인덱스를 구하는 방법에 대해 알아보겠습니다.
파이썬 최대·최솟값 인덱스
▣ 리스트에서 구하기
- 리스트 객체의 index() 메소드 활용
- 파이썬의 인덱스는 0번째부터 시작하는 점은 주의해야 하며, 해당 인덱스의 리스트를 불러올 때는 [index_num] 슬라이싱 사용
# 리스트 생성
list_ = [10, 40, 24, 11, 26, 39, 4, 194, 22]
# 최댓값 인덱스 : 7
print(list_.index(max(list_)))
# 최솟값 인덱스 : 6
print(list_.index(min(list_)))
▣ 데이터프레임에서 구하기
- 파이썬 pandas 데이터프레임 객체의 idxmax() & idxmin() 메소드 활용
- 만일, 최대 혹은 최소값이 여러 개인 경우, 더 앞의 위치에 등장하는 인덱스를 반환함
- 단, 문자열 등 숫자가 아닌 자료형으로 구성된 열이 포함되면 아래와 같은 오류가 발생함
(TypeError: reduction operation 'argmax' not allowed for this dtype)
# iris 데이터프레임 생성
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['class'] = iris.target
# 특정 컬럼 최댓/최솟값 행 추출
print(df.loc[df["sepal length (cm)"].idxmax()])
print(df.loc[df["sepal length (cm)"].idxmin()])
# 각 컬럼별 최댓/최솟값 추출
print(df.idxmax(axis=0))
print(df.idxmin(axis=0))
-- 특정 컬럼의 최댓/최솟값 행 추출 결과
sepal length (cm) 7.9 sepal length (cm) 4.3
sepal width (cm) 3.8 sepal width (cm) 3.0
petal length (cm) 6.4 petal length (cm) 1.1
petal width (cm) 2.0 petal width (cm) 0.1
class 2.0 Name: 131, dtype: float64 class 0.0 Name: 13, dtype: float64
-- 각 컬럼별 최댓/최솟값 추출 결과
sepal length (cm) 131 sepal length (cm) 13
sepal width (cm) 15 sepal width (cm) 60
petal length (cm) 118 petal length (cm) 22
petal width (cm) 100 petal width (cm) 9
class 100 dtype: int64 class 0 dtype: int64
반응형
'Programming > Python' 카테고리의 다른 글
[Python] fnmatch 폴더 및 파일명 찾기 (2) | 2024.01.02 |
---|---|
[Python] textwrap 문자열 래핑하기 (2) | 2023.12.26 |
[Python] 파이썬 순위 매기기 (1) | 2023.12.21 |
[Python] 환율 정보 가져오기 (4) | 2023.12.20 |
[Python] 파이썬 엑셀 이미지 삽입하기 (2) | 2023.11.13 |
댓글