특정 열에서 상위 및 하위 5 % 정도의 데이터를 제거하여 데이터 프레임을 트리밍하려고합니다. 데이터를 효과적으로 사용하지 못하게하는 잘못된 이상 값이 있습니다.
데이터 프레임에는 "이름"열과 숫자가 아닌 열이 몇 개 있으므로 특정 열을 선택하여 df를 트리밍 할 수 있기를 원합니다.
값이 가장 크거나 가장 작은 x %이면 셀을 NaN으로 변환하는 것이 효과적인 방법이라고 생각하지만, 작동하는 경우 다른 방법도 열려 있습니다.
다음은 내가하려는 작업의 예입니다.
for column in df.columns:
top = column.quantile(0.95)
bottom = column.quantile(0.05)
for cell in column:
if (cell >= top)|(cell <= bottom):
cell = np.NaN
나는 당신이 원하는 것 같아요 between
. 또한 다음으로 배열을 전달할 수 있습니다 quantile()
.
for column in [your_list_of_columns]:
bottom, top = df[column].quantile([0.05,0.95])
df[column] = df[column].where(df[column].between(bottom, top))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다