Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengenalpasti dan Mengalih Keluar Outlier daripada Pandas DataFrame Menggunakan Z-skor?

Bagaimanakah Saya Boleh Mengenalpasti dan Mengalih Keluar Outlier daripada Pandas DataFrame Menggunakan Z-skor?

Patricia Arquette
Patricia Arquetteasal
2024-11-30 12:39:14671semak imbas

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

Kenal pasti dan Kecualikan Outlier dalam DataFrame panda

Dalam panda DataFrame dengan berbilang lajur, mengenal pasti dan mengecualikan outlier berdasarkan nilai lajur tertentu boleh meningkatkan ketepatan dan kebolehpercayaan data. Outlier, atau nilai ekstrem yang menyimpang dengan ketara daripada majoriti data, boleh memesongkan hasil analisis dan membawa kepada kesimpulan yang salah.

Untuk menapis outlier dengan berkesan, pendekatan yang teguh adalah bergantung pada teknik statistik. Satu kaedah melibatkan penggunaan skor Z, ukuran berapa banyak sisihan piawai sesuatu nilai terletak daripada min. Baris dengan skor Z yang melebihi ambang yang telah ditetapkan boleh dianggap sebagai outlier.

Menggunakan sciPy.stats.zscore

Pustaka sciPy menyediakan fungsi zscore() untuk mengira Z -skor untuk setiap lajur dalam DataFrame. Berikut ialah penyelesaian yang elegan untuk mengesan dan mengecualikan outlier:

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]

Pendekatan ini berkesan mengenal pasti baris outlier dan mengalih keluarnya daripada DataFrame.

Mengendalikan Berbilang Lajur

Dalam kes berbilang lajur, pengesanan outlier boleh digunakan pada yang khusus lajur atau semua lajur serentak:

# 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]

Dengan menggunakan kaedah statistik seperti pengiraan skor Z, adalah mungkin untuk mengesan dan mengecualikan outlier dengan cekap dalam DataFrame panda, memastikan data yang lebih bersih dan lebih dipercayai untuk analisis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengenalpasti dan Mengalih Keluar Outlier daripada Pandas DataFrame Menggunakan Z-skor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn