>백엔드 개발 >파이썬 튜토리얼 >Z 점수를 사용하여 Pandas DataFrame에서 이상값을 식별하고 제거하려면 어떻게 해야 합니까?

Z 점수를 사용하여 Pandas DataFrame에서 이상값을 식별하고 제거하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 12:39:14630검색

How Can I Identify and Remove Outliers from a Pandas DataFrame Using Z-scores?

Pandas DataFrame에서 이상값 식별 및 제외

여러 열이 있는 Pandas DataFrame에서 특정 열 값을 기반으로 이상값을 식별하고 제외할 수 있습니다. 데이터의 정확성과 신뢰성을 향상시킵니다. 이상값, 즉 대부분의 데이터에서 크게 벗어나는 극단값은 분석 결과를 왜곡하고 잘못된 결론으로 ​​이어질 수 있습니다.

이상값을 효과적으로 필터링하기 위한 강력한 접근 방식은 통계 기법에 의존하는 것입니다. 한 가지 방법은 값이 평균에서 얼마나 많은 표준 편차를 가지고 있는지 측정하는 Z-점수를 사용하는 것입니다. 사전 정의된 임계값을 초과하는 Z 점수가 있는 행은 이상값으로 간주될 수 있습니다.

sciPy.stats.zscore 사용

sciPy 라이브러리는 Z를 계산하는 zscore() 함수를 제공합니다. -DataFrame의 각 열에 대한 점수. 다음은 이상값을 감지하고 제외하는 우아한 솔루션입니다.

import pandas as pd
import numpy as np
from scipy import stats

df = pd.DataFrame({'Vol': [1200, 1220, 1215, 4000, 1210]})

outlier_threshold = 3

# Compute Z-scores for the 'Vol' column
zscores = np.abs(stats.zscore(df['Vol']))

# Create a mask to identify rows with outliers
outlier_mask = zscores > outlier_threshold

# Exclude rows with outliers
df_without_outliers = df[~outlier_mask]

이 접근 방식은 이상값 행을 효과적으로 식별하고 DataFrame에서 제거합니다.

여러 열 처리

컬럼이 여러 개인 경우 특정 컬럼 또는 전체 컬럼에 이상치 탐지 적용 가능 동시에:

# Outliers in at least one column
outlier_mask = (np.abs(stats.zscore(df)) < outlier_threshold).all(axis=1)

# Remove rows with outliers in any column
df_without_outliers = df[~outlier_mask]
# Outliers in a specific column ('Vol')
zscores = np.abs(stats.zscore(df['Vol']))
outlier_mask = zscores > outlier_threshold

# Remove rows with outliers in the 'Vol' column
df_without_outliers = df[~outlier_mask]

Z-점수 계산과 같은 통계 방법을 사용하면 Pandas DataFrame에서 이상값을 효율적으로 감지하고 제외하여 더 깨끗하고 신뢰할 수 있는 분석 데이터를 확보할 수 있습니다.

위 내용은 Z 점수를 사용하여 Pandas DataFrame에서 이상값을 식별하고 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.