해결된 질문
작성
·
75
0
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['f5'] = scaler.fit_transform(df[['f5']])
# print(df)
df_top = df.sort_values('f5',ascending=False)
df_bottom = df.sort_values('f5',ascending=True)
# print(df_top)
df_top5 = df_top.iloc[int(len(df_top)*0.05)-1,-1]
# print(df_bottom)
df_bottom5 = df_bottom.iloc[int(len(df_bottom)*0.05)-1,-1]
print(df_top5+df_bottom5)
저는 코드를 이렇게 작성해서 답이 동일하게 나오긴 했는데
sort를 써서 좀 복잡해진 느낌이 없지않아 있어서요
quantile을 쓰면 자동으로 정렬이 된 후 해당하는 퍼센트 값을 return해주는건가요?
상위 몇퍼센트, 하위 몇퍼센트라는 문구를 보면 quantile를 그냥 쓴다고 생각하면 될까요?
답변 1
0
1 quantile은 자동으로 정렬하는 것은 아니에요~
# 예시: 데이터프레임 df에서 'f5' 열의 상위 5%에 해당하는 값을 구하는 경우
q = df['f5'].quantile(0.95)
와 같이 사용가능합니다.
주의할점은 상위, 하위를 잘 읽어주세요!
2 사용하는 것이 편하지 않을까요?
제 코드로 했을때 복잡하긴한대 답이 동일하게 나왔다는것은
이 문제 에서 상위, 하위의 의미는 원래 데이터 순서에서가 아닌
정렬을 한 후 상위, 하위 라는 말 같은데
quantile에서 자동으로 정렬하는 기능이 없다면 어떻게 상위 하위 값을 가져오나요?
상위 몇퍼센트 하위 몇퍼센트
이렇게 상위 하위가 퍼센트로 표현될때 quantile쓰고
상위 몇개 하위 몇개
이렇게 제시 되었을때는 sort 사용해서 찾는다고 생각해도 될까요?