成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文教你如何利用 Python 進(jìn)行數(shù)據(jù)清洗

開發(fā) 后端
本文介紹了如何使用 Python 進(jìn)行數(shù)據(jù)清洗,通過一個(gè)實(shí)戰(zhàn)案例,我們?cè)敿?xì)展示了如何處理電商用戶數(shù)據(jù)。

數(shù)據(jù)清洗是數(shù)據(jù)分析中非常重要的一步,它可以幫助我們處理不完整、不準(zhǔn)確或不一致的數(shù)據(jù)。今天,我們就來聊聊如何用 Python 進(jìn)行數(shù)據(jù)清洗。Python 有強(qiáng)大的庫(kù)如 Pandas 和 NumPy,它們提供了豐富的工具來幫助我們高效地完成數(shù)據(jù)清洗任務(wù)。

導(dǎo)入必要的庫(kù)

首先,我們需要導(dǎo)入一些常用的庫(kù),比如 Pandas 和 NumPy。Pandas 是一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),NumPy 則主要用于數(shù)值計(jì)算。

import pandas as pd
import numpy as np

讀取數(shù)據(jù)

假設(shè)我們有一個(gè) CSV 文件 data.csv,我們可以使用 Pandas 的 read_csv 函數(shù)來讀取數(shù)據(jù)。

# 讀取 CSV 文件
df = pd.read_csv('data.csv')

# 查看前 5 行數(shù)據(jù)
print(df.head())

檢查數(shù)據(jù)基本信息

在開始清洗數(shù)據(jù)之前,我們需要了解數(shù)據(jù)的基本信息,包括數(shù)據(jù)的形狀、列名、數(shù)據(jù)類型等。

# 查看數(shù)據(jù)形狀
print(f"數(shù)據(jù)形狀: {df.shape}")

# 查看列名
print(f"列名: {df.columns.tolist()}")

# 查看數(shù)據(jù)類型
print(f"數(shù)據(jù)類型: \n{df.dtypes}")

處理缺失值

缺失值是數(shù)據(jù)清洗中常見的問題。我們可以使用 isnull() 和 notnull() 函數(shù)來檢查缺失值,并使用 fillna() 或 dropna() 來處理它們。

# 檢查缺失值
print(df.isnull().sum())

# 填充缺失值
df['age'].fillna(df['age'].mean(), inplace=True)  # 用平均值填充年齡列的缺失值
df['income'].fillna(0, inplace=True)  # 用 0 填充收入列的缺失值

# 刪除含有缺失值的行
df.dropna(subset=['address'], inplace=True)  # 刪除地址列中含有缺失值的行

處理重復(fù)值

重復(fù)值可能會(huì)導(dǎo)致分析結(jié)果失真。我們可以使用 duplicated() 和 drop_duplicates() 函數(shù)來檢測(cè)和刪除重復(fù)值。

# 檢查重復(fù)值
print(df.duplicated().sum())

# 刪除重復(fù)值
df.drop_duplicates(inplace=True)

數(shù)據(jù)類型轉(zhuǎn)換

有時(shí)候,數(shù)據(jù)的類型可能不符合我們的需求。我們可以使用 astype() 函數(shù)來轉(zhuǎn)換數(shù)據(jù)類型。

# 將 age 列轉(zhuǎn)換為整數(shù)類型
df['age'] = df['age'].astype(int)

# 將 income 列轉(zhuǎn)換為浮點(diǎn)數(shù)類型
df['income'] = df['income'].astype(float)

處理異常值

異常值可能會(huì)對(duì)分析結(jié)果產(chǎn)生重大影響。我們可以使用統(tǒng)計(jì)方法(如 Z-score)或箱線圖來檢測(cè)和處理異常值。

# 使用 Z-score 方法檢測(cè)異常值
from scipy import stats
z_scores = np.abs(stats.zscore(df['income']))
df = df[z_scores < 3]  # 保留 Z-score 小于 3 的數(shù)據(jù)

# 使用箱線圖方法檢測(cè)異常值
Q1 = df['income'].quantile(0.25)
Q3 = df['income'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
df = df[(df['income'] >= lower_bound) & (df['income'] <= upper_bound)]

標(biāo)準(zhǔn)化和歸一化

在某些情況下,我們可能需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化或歸一化處理,以便更好地進(jìn)行模型訓(xùn)練。

# 標(biāo)準(zhǔn)化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['age', 'income']] = scaler.fit_transform(df[['age', 'income']])

# 歸一化
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[['age', 'income']] = scaler.fit_transform(df[['age', 'income']])

保存清洗后的數(shù)據(jù)

最后,我們將清洗后的數(shù)據(jù)保存到一個(gè)新的 CSV 文件中,以便后續(xù)使用。

# 保存清洗后的數(shù)據(jù)
df.to_csv('cleaned_data.csv', index=False)

實(shí)戰(zhàn)案例:處理電商用戶數(shù)據(jù)

假設(shè)我們有一個(gè)電商用戶的 CSV 文件 users.csv,包含用戶的年齡、收入、地址等信息。我們需要對(duì)其進(jìn)行數(shù)據(jù)清洗,以確保數(shù)據(jù)的質(zhì)量。

步驟 1:讀取數(shù)據(jù)

# 讀取 CSV 文件
df = pd.read_csv('users.csv')

# 查看前 5 行數(shù)據(jù)
print(df.head())

步驟 2:檢查數(shù)據(jù)基本信息

# 查看數(shù)據(jù)形狀
print(f"數(shù)據(jù)形狀: {df.shape}")

# 查看列名
print(f"列名: {df.columns.tolist()}")

# 查看數(shù)據(jù)類型
print(f"數(shù)據(jù)類型: \n{df.dtypes}")

步驟 3:處理缺失值

# 檢查缺失值
print(df.isnull().sum())

# 填充缺失值
df['age'].fillna(df['age'].mean(), inplace=True)  # 用平均值填充年齡列的缺失值
df['income'].fillna(0, inplace=True)  # 用 0 填充收入列的缺失值

# 刪除含有缺失值的行
df.dropna(subset=['address'], inplace=True)  # 刪除地址列中含有缺失值的行

步驟 4:處理重復(fù)值

# 檢查重復(fù)值
print(df.duplicated().sum())

# 刪除重復(fù)值
df.drop_duplicates(inplace=True)

步驟 5:數(shù)據(jù)類型轉(zhuǎn)換

# 將 age 列轉(zhuǎn)換為整數(shù)類型
df['age'] = df['age'].astype(int)

# 將 income 列轉(zhuǎn)換為浮點(diǎn)數(shù)類型
df['income'] = df['income'].astype(float)

步驟 6:處理異常值

# 使用 Z-score 方法檢測(cè)異常值
z_scores = np.abs(stats.zscore(df['income']))
df = df[z_scores < 3]  # 保留 Z-score 小于 3 的數(shù)據(jù)

# 使用箱線圖方法檢測(cè)異常值
Q1 = df['income'].quantile(0.25)
Q3 = df['income'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
df = df[(df['income'] >= lower_bound) & (df['income'] <= upper_bound)]

步驟 7:保存清洗后的數(shù)據(jù)

# 保存清洗后的數(shù)據(jù)
df.to_csv('cleaned_users.csv', index=False)

總結(jié)

本文介紹了如何使用 Python 進(jìn)行數(shù)據(jù)清洗,包括導(dǎo)入必要的庫(kù)、讀取數(shù)據(jù)、檢查數(shù)據(jù)基本信息、處理缺失值、處理重復(fù)值、數(shù)據(jù)類型轉(zhuǎn)換、處理異常值、標(biāo)準(zhǔn)化和歸一化,以及保存清洗后的數(shù)據(jù)。通過一個(gè)實(shí)戰(zhàn)案例,我們?cè)敿?xì)展示了如何處理電商用戶數(shù)據(jù)。

責(zé)任編輯:趙寧寧 來源: 小白PythonAI編程
相關(guān)推薦

2024-11-20 16:12:31

Python圖像處理計(jì)算機(jī)視覺

2024-11-20 16:42:03

Python科學(xué)計(jì)算

2024-11-18 17:16:18

Python性能優(yōu)化編程

2021-12-07 06:02:15

Redis Docker運(yùn)維

2022-09-05 07:32:46

mock數(shù)據(jù)Stream

2023-05-05 19:29:41

2022-02-20 09:56:28

TCPIP網(wǎng)絡(luò)協(xié)議

2023-12-27 07:40:43

HTTP服務(wù)器負(fù)載均衡

2020-03-23 10:06:05

工具代碼開發(fā)

2023-07-31 21:56:54

哨兵系統(tǒng)redis

2021-01-15 13:18:39

數(shù)據(jù)模型領(lǐng)域模型代碼

2019-07-23 07:30:16

2020-12-22 10:02:53

ZabbixMySQL數(shù)據(jù)庫(kù)

2025-05-30 01:00:00

RAG大模型流程

2023-05-11 08:26:56

2024-10-28 12:57:36

Pandas數(shù)據(jù)清洗

2023-05-05 19:16:22

Python數(shù)據(jù)清洗

2021-08-10 05:49:10

網(wǎng)絡(luò)協(xié)議C語言Linux操作

2025-06-20 08:00:00

硬路由軟路由網(wǎng)絡(luò)

2022-03-28 14:08:02

Python數(shù)據(jù)清洗數(shù)據(jù)集
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲欧美精品在线观看 | 国产精品国产a级 | 日韩一区二区三区在线观看 | 成人不卡在线 | 欧美日韩国产不卡 | 欧美日韩久久久 | 亚洲国产一区二区视频 | 国产在线一区二区三区 | 亚洲一区二区三区在线视频 | 99精品在线观看 | 日韩一区二区三区在线播放 | 成人免费淫片aa视频免费 | 日本精品视频一区二区 | 亚洲精品一区二区三区丝袜 | 亚洲第一av网站 | 久久精品这里 | av电影手机在线看 | 欧美激情一区二区三级高清视频 | 精品无码久久久久久国产 | www.亚洲一区 | 午夜一区 | 日韩在线视频免费观看 | 日本精品在线观看 | 国产精品揄拍一区二区 | 久久69精品久久久久久久电影好 | 一区二区日韩精品 | 欧美久久久久久久 | 亚洲精品国产综合区久久久久久久 | 四虎影院在线免费观看 | 性国产丰满麻豆videosex | 91久久国产综合久久91精品网站 | 亚洲精品一区中文字幕乱码 | 国产一区二区三区久久久久久久久 | 精品国模一区二区三区欧美 | 在线中文字幕av | 一a级片| 黄网址在线观看 | 国产成人99av超碰超爽 | 亚洲精品永久免费 | 国产三级电影网站 | 久久久久久综合 |