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

一文教你如何利用 Python 進行數據清洗

開發 后端
本文介紹了如何使用 Python 進行數據清洗,通過一個實戰案例,我們詳細展示了如何處理電商用戶數據。

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

導入必要的庫

首先,我們需要導入一些常用的庫,比如 Pandas 和 NumPy。Pandas 是一個強大的數據處理庫,NumPy 則主要用于數值計算。

import pandas as pd
import numpy as np

讀取數據

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

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

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

檢查數據基本信息

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

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

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

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

處理缺失值

缺失值是數據清洗中常見的問題。我們可以使用 isnull() 和 notnull() 函數來檢查缺失值,并使用 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)  # 刪除地址列中含有缺失值的行

處理重復值

重復值可能會導致分析結果失真。我們可以使用 duplicated() 和 drop_duplicates() 函數來檢測和刪除重復值。

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

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

數據類型轉換

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

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

# 將 income 列轉換為浮點數類型
df['income'] = df['income'].astype(float)

處理異常值

異常值可能會對分析結果產生重大影響。我們可以使用統計方法(如 Z-score)或箱線圖來檢測和處理異常值。

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

# 使用箱線圖方法檢測異常值
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)]

標準化和歸一化

在某些情況下,我們可能需要對數據進行標準化或歸一化處理,以便更好地進行模型訓練。

# 標準化
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']])

保存清洗后的數據

最后,我們將清洗后的數據保存到一個新的 CSV 文件中,以便后續使用。

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

實戰案例:處理電商用戶數據

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

步驟 1:讀取數據

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

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

步驟 2:檢查數據基本信息

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

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

# 查看數據類型
print(f"數據類型: \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:處理重復值

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

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

步驟 5:數據類型轉換

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

# 將 income 列轉換為浮點數類型
df['income'] = df['income'].astype(float)

步驟 6:處理異常值

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

# 使用箱線圖方法檢測異常值
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:保存清洗后的數據

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

總結

本文介紹了如何使用 Python 進行數據清洗,包括導入必要的庫、讀取數據、檢查數據基本信息、處理缺失值、處理重復值、數據類型轉換、處理異常值、標準化和歸一化,以及保存清洗后的數據。通過一個實戰案例,我們詳細展示了如何處理電商用戶數據。

責任編輯:趙寧寧 來源: 小白PythonAI編程
相關推薦

2024-11-20 16:42:03

Python科學計算

2024-11-20 16:12:31

Python圖像處理計算機視覺

2024-11-18 17:16:18

Python性能優化編程

2023-05-05 19:29:41

2021-12-07 06:02:15

Redis Docker運維

2022-09-05 07:32:46

mock數據Stream

2020-03-23 10:06:05

工具代碼開發

2023-07-31 21:56:54

哨兵系統redis

2022-02-20 09:56:28

TCPIP網絡協議

2023-12-27 07:40:43

HTTP服務器負載均衡

2021-01-15 13:18:39

數據模型領域模型代碼

2023-05-11 08:26:56

2019-07-23 07:30:16

2020-12-22 10:02:53

ZabbixMySQL數據庫

2024-10-28 12:57:36

Pandas數據清洗

2025-05-30 01:00:00

RAG大模型流程

2021-08-10 05:49:10

網絡協議C語言Linux操作

2023-05-05 19:16:22

Python數據清洗

2025-06-20 08:00:00

硬路由軟路由網絡

2022-03-28 14:08:02

Python數據清洗數據集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品一区二区三区视频 | 成人福利在线 | 中文字幕亚洲一区二区va在线 | 久久小视频 | 在线观看黄色电影 | 日韩中文字幕在线播放 | 日本三级网站在线 | 中文字幕免费在线 | 中文字幕视频在线观看 | 一区二区不卡 | 精品欧美一区免费观看α√ | 久久久精品视频免费看 | 天堂网中文 | 一级片在线观看 | 国产精品视频一区二区三区 | 欧美日韩国产在线观看 | 国产乱码精品一区二三赶尸艳谈 | a黄视频| 亚洲综合国产 | av乱码 | 在线午夜| 欧美一区二区三区在线观看 | 浴室洗澡偷拍一区二区 | 欧美福利 | 91久久伊人 | 久久国产精品久久久久久 | 日日操视频 | 熟女毛片 | 亚洲欧美国产精品一区二区 | 亚洲精品自拍视频 | 精品视频在线观看 | 91精品一区二区三区久久久久久 | 日韩一区二区三区精品 | 欧美三区在线观看 | 成人免费区一区二区三区 | 欧美日韩第一页 | 欧美一区二区三区在线 | 日韩精品一区二区三区中文字幕 | 成人一区二区视频 | 第四色狠狠| 99久久国产 |