新聞中心
在Python中,清洗數(shù)據(jù)是數(shù)據(jù)分析和機器學習過程中非常重要的一步,清洗數(shù)據(jù)的目的是去除數(shù)據(jù)集中的噪聲、缺失值、異常值等,以提高數(shù)據(jù)質(zhì)量,為后續(xù)的數(shù)據(jù)分析和建模打下良好的基礎(chǔ),本文將詳細介紹如何使用Python進行數(shù)據(jù)清洗。

導(dǎo)入所需庫
在進行數(shù)據(jù)清洗之前,我們需要導(dǎo)入一些常用的Python庫,如pandas、numpy、matplotlib等。
import pandas as pd import numpy as np import matplotlib.pyplot as plt
讀取數(shù)據(jù)
我們需要讀取待清洗的數(shù)據(jù),這里以CSV文件為例,使用pandas庫的read_csv()函數(shù)讀取數(shù)據(jù)。
data = pd.read_csv('data.csv')
查看數(shù)據(jù)基本信息
在開始清洗數(shù)據(jù)之前,我們需要先查看數(shù)據(jù)的基本信息,如列名、數(shù)據(jù)類型、空值數(shù)量等,這有助于我們了解數(shù)據(jù)的基本情況,為后續(xù)的數(shù)據(jù)清洗提供指導(dǎo)。
print(data.info()) print(data.describe())
處理缺失值
1、判斷缺失值:使用isnull()函數(shù)判斷數(shù)據(jù)集中的缺失值。
print(data.isnull().sum())
2、刪除缺失值:使用dropna()函數(shù)刪除包含缺失值的行或列。
刪除包含缺失值的行 data_no_missing_rows = data.dropna() 刪除包含缺失值的列 data_no_missing_columns = data.dropna(axis=1)
3、填充缺失值:根據(jù)具體情況選擇合適的填充方法,如使用均值、中位數(shù)、眾數(shù)等填充。
使用均值填充缺失值 data_mean_filled = data.fillna(data.mean()) 使用中位數(shù)填充缺失值 data_median_filled = data.fillna(data.median()) 使用眾數(shù)填充缺失值(僅適用于分類變量) data_mode_filled = data.fillna(data.mode().iloc[0])
處理重復(fù)值
1、判斷重復(fù)值:使用duplicated()函數(shù)判斷數(shù)據(jù)集中的重復(fù)行。
print(data[data.duplicated()].count())
2、刪除重復(fù)值:使用drop_duplicates()函數(shù)刪除重復(fù)行。
data_no_duplicates = data.drop_duplicates()
處理異常值
1、箱線圖:使用boxplot()函數(shù)繪制箱線圖,觀察數(shù)據(jù)的分布情況,找出異常值。
plt.boxplot(data) plt.show()
2、基于規(guī)則:根據(jù)業(yè)務(wù)知識,設(shè)定異常值的判斷規(guī)則,如某列數(shù)值超過平均值的3倍標準差等,然后使用條件篩選法篩選出異常值。
假設(shè)我們要篩選出age列中大于60的異常值 outliers = data[data['age'] > 60]
3、替換異常值:根據(jù)實際情況,選擇合適的方法替換異常值,如使用均值、中位數(shù)等替換。
使用均值替換異常值(僅適用于數(shù)值變量) data_mean_replaced = data[data['age'] > 60].replace(data['age'], data['age'].mean())
處理不一致的數(shù)據(jù)格式和數(shù)據(jù)類型
1、轉(zhuǎn)換數(shù)據(jù)類型:使用astype()函數(shù)將數(shù)據(jù)轉(zhuǎn)換為合適的數(shù)據(jù)類型,將字符串類型的日期轉(zhuǎn)換為datetime類型。
data['date'] = pd.to_datetime(data['date']).astype(int) # 將字符串類型的日期轉(zhuǎn)換為整數(shù)類型的日期戳表示形式(僅適用于pandas中的Datetime類型)
2、重命名列名:使用rename()函數(shù)重命名列名,使其更符合業(yè)務(wù)邏輯,將“old_column”重命名為“new_column”。
data = data.rename(columns={'old_column': 'new_column'}) # 將“old_column”重命名為“new_column”
保存清洗后的數(shù)據(jù)
清洗完成后,我們可以將清洗后的數(shù)據(jù)保存到新的文件中,這里以CSV文件為例,使用to_csv()函數(shù)保存數(shù)據(jù)。
新聞標題:python中如何清洗數(shù)據(jù)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/ccdjppe.html


咨詢
建站咨詢
