自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

八步學(xué)會(huì)使用Pandas進(jìn)行數(shù)據(jù)清洗

大數(shù)據(jù) 數(shù)據(jù)分析
你已成功使用Pandas清洗了第一個(gè)數(shù)據(jù)集。在處理復(fù)雜數(shù)據(jù)集時(shí),你可能會(huì)遇到其他挑戰(zhàn)。然而,本文介紹的基本技術(shù)將幫助你入門,并為開(kāi)始數(shù)據(jù)分析做好準(zhǔn)備。

簡(jiǎn)介

如果你對(duì)數(shù)據(jù)科學(xué)感興趣,那么數(shù)據(jù)清洗可能對(duì)你來(lái)說(shuō)是一個(gè)熟悉的術(shù)語(yǔ)。如果不熟悉,那么本文先來(lái)解釋一下。我們的數(shù)據(jù)通常來(lái)自多個(gè)資源,而且并不干凈。它可能包含缺失值、重復(fù)值、錯(cuò)誤或不需要的格式等。在這種混亂的數(shù)據(jù)上運(yùn)行實(shí)驗(yàn)會(huì)導(dǎo)致錯(cuò)誤的結(jié)果。因此,在將數(shù)據(jù)輸入模型之前,有必要對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)備。這種通過(guò)識(shí)別和解決潛在的錯(cuò)誤、不準(zhǔn)確性和不一致性來(lái)準(zhǔn)備數(shù)據(jù)的做法被稱為數(shù)據(jù)清洗。

在本教程中將向你介紹使用Pandas進(jìn)行數(shù)據(jù)清洗的過(guò)程。

數(shù)據(jù)集

本文將使用著名的鳶尾花數(shù)據(jù)集進(jìn)行操作。鳶尾花數(shù)據(jù)集包含三個(gè)品種的鳶尾花的四個(gè)特征測(cè)量值:萼片長(zhǎng)度、萼片寬度、花瓣長(zhǎng)度和花瓣寬度。本文將使用以下庫(kù):

  • Pandas:用于數(shù)據(jù)處理和分析的強(qiáng)大庫(kù)
  • Scikit-learn:提供數(shù)據(jù)預(yù)處理和機(jī)器學(xué)習(xí)的工具

數(shù)據(jù)清洗步驟

1. 加載數(shù)據(jù)集

使用Pandas的read_csv()函數(shù)加載鳶尾花數(shù)據(jù)集:

column_names = ['id', 'sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species']
iris_data = pd.read_csv('data/Iris.csv', names= column_names, header=0)
iris_data.head()

輸出:

id

sepal_length

sepal_width

petal_length

petal_width

species

1

5.1

3.5

1.4

0.2

Iris-setosa

2

4.9

3.0

1.4

0.2

Iris-setosa

3

4.7

3.2

1.3

0.2

Iris-setosa

4

4.6

3.1

1.5

0.2

Iris-setosa

5

5.0

3.6

1.4

0.2

Iris-setosa

參數(shù)header=0表示CSV文件的第一行包含列名(標(biāo)題)。

2. 探索數(shù)據(jù)集

為了深入了解數(shù)據(jù)集的基本信息,本文將使用pandas的內(nèi)置函數(shù)打印一些基本信息:

print(iris_data.info())
print(iris_data.describe())

輸出:

RangeIndex: 150 entries, 0 to 149
Data columns (total 6 columns):
 #   列名           非空計(jì)數(shù)         類型  
---  ------        --------------  -----  
 0   id            150 non-null    int64  
 1   sepal_length  150 non-null    float64
 2   sepal_width   150 non-null    float64
 3   petal_length  150 non-null    float64
 4   petal_width   150 non-null    float64
 5   species       150 non-null    object 
dtypes: float64(4), int64(1), object(1)
memory usage: 7.2+ KB
None

iris_data.describe()的輸出結(jié)果iris_data.describe()的輸出結(jié)果

info()函數(shù)有助于了解數(shù)據(jù)幀的整體結(jié)構(gòu)、每列中非空值的數(shù)量以及內(nèi)存使用情況。而匯總統(tǒng)計(jì)信息則提供了數(shù)據(jù)集中數(shù)值特征的概覽。

3. 檢查類別分布

這是了解分類列中類別分布情況的重要步驟,對(duì)于分類任務(wù)來(lái)說(shuō)非常重要??梢允褂肞andas中的value_counts()函數(shù)來(lái)執(zhí)行此步驟。

print(iris_data['species'].value_counts())

輸出:

Iris-setosa        50
Iris-versicolor    50
Iris-virginica     50
Name: species, dtype: int64

輸出的結(jié)果顯示,數(shù)據(jù)集是平衡的,每個(gè)品種的代表數(shù)量相等。這為所有3個(gè)類別進(jìn)行公平評(píng)估和比較奠定了基礎(chǔ)。

4. 刪除缺失值

由于從info()方法明顯可見(jiàn)本文的數(shù)據(jù)中有5列沒(méi)有缺失值,因此本文將跳過(guò)此步驟。但如果遇到任何缺失值,可以使用以下命令處理它們:

iris_data.dropna(inplace=True)

5. 刪除重復(fù)值

重復(fù)值可能會(huì)扭曲我們的分析結(jié)果,因此本文會(huì)從數(shù)據(jù)集中刪除它們。首先使用下面的命令檢查是否存在重復(fù)值:

duplicate_rows = iris_data.duplicated()
print("Number of duplicate rows:", duplicate_rows.sum())

輸出:

Number of duplicate rows: 0

本文的數(shù)據(jù)集中沒(méi)有重復(fù)值。不過(guò),如果有重復(fù)值,可以使用drop_duplicates()函數(shù)將其刪除:

iris_data.drop_duplicates(inplace=True)

6. 獨(dú)熱編碼

對(duì)于分類分析,本文將對(duì)品種列進(jìn)行獨(dú)熱編碼。由于機(jī)器學(xué)習(xí)算法更適合處理數(shù)值數(shù)據(jù),所以本文進(jìn)行獨(dú)熱編碼這一步驟。獨(dú)熱編碼過(guò)程將分類變量轉(zhuǎn)換為二進(jìn)制(0或1)格式。

encoded_species = pd.get_dummies(iris_data['species'], prefix='species', drop_first=False).astype('int')
iris_data = pd.concat([iris_data, encoded_species], axis=1)
iris_data.drop(columns=['species'], inplace=True)

圖片圖片

7. 浮點(diǎn)數(shù)列的歸一化

歸一化是將數(shù)值特征縮放為均值為0、標(biāo)準(zhǔn)差為1的過(guò)程。這一過(guò)程旨在確保各特征對(duì)分析的貢獻(xiàn)相等。本文將對(duì)浮點(diǎn)數(shù)列進(jìn)行歸一化,以便進(jìn)行一致的縮放。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
cols_to_normalize = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
scaled_data = scaler.fit(iris_data[cols_to_normalize])
iris_data[cols_to_normalize] = scaler.transform(iris_data[cols_to_normalize])

歸一化后的iris_data.describe()輸出結(jié)果歸一化后的iris_data.describe()輸出結(jié)果

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

將清洗后的數(shù)據(jù)集保存到新的CSV文件中。

iris_data.to_csv('cleaned_iris.csv', index=False)

總結(jié)

恭喜!你已成功使用Pandas清洗了第一個(gè)數(shù)據(jù)集。在處理復(fù)雜數(shù)據(jù)集時(shí),你可能會(huì)遇到其他挑戰(zhàn)。然而,本文介紹的基本技術(shù)將幫助你入門,并為開(kāi)始數(shù)據(jù)分析做好準(zhǔn)備。

責(zé)任編輯:武曉燕 來(lái)源: Python學(xué)研大本營(yíng)
相關(guān)推薦

2024-10-28 12:57:36

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

2018-04-03 12:07:53

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

2012-04-06 10:44:02

2023-05-05 19:16:22

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

2022-03-28 14:08:02

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

2009-08-26 16:56:49

Oracle訪問(wèn)Syb

2023-05-05 19:29:41

2023-08-15 16:20:42

Pandas數(shù)據(jù)分析

2010-08-29 20:56:02

路由器DHCP配置

2010-10-22 11:31:53

SQL Server自

2025-04-07 00:30:00

DeepSeek大數(shù)據(jù)數(shù)字化

2023-02-15 08:24:12

數(shù)據(jù)分析數(shù)據(jù)可視化

2023-05-19 15:51:36

數(shù)據(jù)治理工具

2009-10-21 15:03:50

VB入門教程

2015-04-09 14:58:45

OpenStackDocker私有云搭建

2010-04-09 11:21:37

Linux下配置VSf

2017-09-20 07:09:23

網(wǎng)線雙絞線電纜

2010-07-02 14:26:55

Visio畫UML用例

2021-07-27 15:40:39

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

2021-07-28 08:53:53

GoGDB調(diào)試
點(diǎn)贊
收藏

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