首頁  >  文章  >  後端開發  >  Python中的資料清洗方法是什麼

Python中的資料清洗方法是什麼

WBOY
WBOY轉載
2023-05-13 16:19:061934瀏覽

這裡資料清洗需要用到的函式庫是pandas函式庫,下載方式還是在終端機運作:pip install pandas.

首先我們需要對資料進行讀取

import pandas as pd
 
data = pd.read_csv(r'E:\PYthon\用户价值分析 RFM模型\data.csv')
pd.set_option('display.max_columns', 888)  # 大于总列数
pd.set_option('display.width', 1000)
print(data.head())
print(data.info())

第3行是對資料進行讀取,pandas函式庫裡面有讀取函數呼叫即可,csv格式是讀取寫入速度最快的。

第4,5行是為了讀取的實話顯示全部的列,是因為很多列的話pycharm會把中間一些列隱藏掉,所以我們這為了他不隱藏就加這兩行程式碼。

第6行是顯示表頭,我們可以看到有什麼字段,列名

第7行是顯示表的基本信息,每一列有多少數據,字段是什麼類型的數據。非空的資料有多少,所以我們第一步就可以看得到基本上那一列有空值了。

Python中的資料清洗方法是什麼

空值處理

data.info()後我們可以看到大部分資料都有541909行,所以我們大致猜到是Description , CustomerID 列漏結果了

# 空值处理
print(data.isnull().sum())  # 空值中和,查看每一列的空值
 
# 空值删除
data.drop(columns=['Description'], inplace=True)
print(data.info())
data.isnull()判断是否为空。data.isnumll().sum()计算空值数量。

第5行進行空值刪除,這裡先刪除Description列的空值,inplace=True意思是對資料進行修改,如果沒有inplace=True,則不對data進行修改,列印資料還是跟之前一樣,或是重新定義一個變數進行賦值。

由於這一列空值資料比較少,這一列資料對我們資料分析沒有那麼重要,所以我們選擇刪除這一整列。

我們這個表格是對客戶進行篩選的,所以以CustomerID為準,強制刪除其他欄位

# CustomerID有空值
# 删除所有列的空值
data.dropna(inplace=True)
# print(data.info())
print(data.isnull().sum())  # 由于CustomerID为必须字段,所以强制删除其他列,以CustomerID为准

這裡我們先對其他欄位進行型別轉換

型別轉換

# 转换为日期类型
data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate'])
 
# CustomerID 转换为整型
data['CustomerID'] = data['CustomerID'].astype('int')
print(data.info())

以上我們處理了空值,接下來我們處理例外值。

異常值處理

查看表的基本資料分佈可以使用describe

print(data.describe())

可以看到資料Quantity 列中最小值為-80995.這列明顯有異常值,所以需要對這列進行異常值篩選。

只需要大於0的值。

Python中的資料清洗方法是什麼

data = data[data['Quantity'] > 0]
print(data)

列印一下就只有397924行了。

重複值處理

# 查看重复值
print(data[data.duplicated()])

Python中的資料清洗方法是什麼

有5194行重複值,這裡的重複值是完全重複的,所以是沒用的資料我們可以刪除。

刪除重複值

# 删除重复值
data.drop_duplicates(inplace=True)
 
print(data.info())

刪除後對原來的表進行保存,再去查看一下表的基本資訊

Python中的資料清洗方法是什麼

現在還剩下392730條數據。資料到這一步就完成了資料清洗。

以上是Python中的資料清洗方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除