欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python pandas進行數(shù)據(jù)預(yù)處理的實現(xiàn)

 更新時間:2025年01月05日 10:46:19   作者:大數(shù)據(jù)張老師  
本案例通過使用pandas庫對電子商務(wù)客戶數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,包括數(shù)據(jù)導入、查看、缺失值處理等處理,具有一定的參考價值,感興趣的可以了解一下

案例:電子商務(wù)客戶數(shù)據(jù)的預(yù)處理

本案例將通過使用pandas庫對電子商務(wù)客戶數(shù)據(jù)進行數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理是進行有效數(shù)據(jù)分析的重要步驟,目的是將數(shù)據(jù)處理為適合分析的狀態(tài)。本案例分為幾個步驟來逐步演示如何進行數(shù)據(jù)導入、查看數(shù)據(jù)集信息、處理缺失值、數(shù)據(jù)格式轉(zhuǎn)換、重復(fù)值刪除、數(shù)據(jù)標準化以及數(shù)據(jù)導出。

測試數(shù)據(jù)

以下是我們將要處理的測試數(shù)據(jù),以電子商務(wù)客戶訂單為例:

CustomerIDOrderDateProductQuantityPrice
C0012024-01-10智能手機2500.00
C0022024-01-12筆記本電腦11200.00
C003NaN耳機350.00
C0012024-01-15平板電腦1300.00
C0042024-01-18筆記本電腦11200.00
C0052024-01-20智能手機2NaN
C0012024-01-15平板電腦1300.00
C0062024-01-22耳機2100.00
C0072024-01-25智能手表1200.00
C0082024-01-28平板電腦3900.00
C0092024-01-30筆記本電腦11500.00
C0102024-02-01智能手機42000.00
C0112024-02-05耳機5250.00
C0122024-02-08平板電腦1300.00
C0132024-02-10智能手表2400.00
C0142024-02-12筆記本電腦22400.00
C0152024-02-15智能手機11000.00
C0162024-02-18平板電腦2600.00
C0172024-02-20智能手表3600.00
C0182024-02-22耳機150.00
C0192024-02-25智能手機21200.00
C0202024-02-28筆記本電腦11300.00

步驟1:數(shù)據(jù)導入

首先,使用pandas導入CSV文件并加載數(shù)據(jù)。

import pandas as pd

# 導入CSV文件
df = pd.read_csv('ecommerce_customers.csv')

解析:首先導入pandas庫,pd.read_csv()方法用于加載CSV文件,并將其存儲在名為df的數(shù)據(jù)框中。

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

使用pandas的各種方法來查看數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容,以便對數(shù)據(jù)有初步的了解。

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

# 查看數(shù)據(jù)類型和列信息
print(df.info())

# 數(shù)值列的簡單統(tǒng)計分析
print(df.describe())

解析

df.head():查看數(shù)據(jù)的前幾行,幫助快速了解數(shù)據(jù)的基本結(jié)構(gòu)。

運行結(jié)果

   CustomerID   OrderDate Product  Quantity   Price
0       C001  2024-01-10    智能手機         2   500.0
1       C002  2024-01-12   筆記本電腦         1  1200.0
2       C003         NaN      耳機         3    50.0
3       C001  2024-01-15    平板電腦         1   300.0
4       C004  2024-01-18   筆記本電腦         1  1200.0

通過head()方法,我們可以快速查看數(shù)據(jù)的前5行,了解數(shù)據(jù)的大致內(nèi)容。

df.info():顯示數(shù)據(jù)集的列、非空值數(shù)量和數(shù)據(jù)類型,幫助了解數(shù)據(jù)集的整體情況。

運行結(jié)果

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20 entries, 0 to 19
Data columns (total 5 columns):
 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   CustomerID  20 non-null     object 
 1   OrderDate   19 non-null     object 
 2   Product     20 non-null     object 
 3   Quantity    20 non-null     int64  
 4   Price       19 non-null     float64
dtypes: float64(1), int64(1), object(3)
memory usage: 928.0+ bytes

通過info()方法,我們可以看到數(shù)據(jù)集中每一列的名稱、數(shù)據(jù)類型,以及非空值的數(shù)量,這對于后續(xù)判斷是否有缺失值非常有幫助。

df.describe():對數(shù)值列進行統(tǒng)計分析,提供如均值、標準差等信息。

運行結(jié)果

        Quantity        Price
count  20.000000    19.000000  
mean    2.000000   810.526316  
std     1.055597   714.053229
min     1.000000    50.000000
25%     1.000000   300.000000
50%     2.000000  1000.000000
75%     3.000000  1200.000000
max     5.000000  2400.000000

通過describe()方法,我們可以看到數(shù)值列(如QuantityPrice)的統(tǒng)計信息,如均值、中位數(shù)、標準差等,這對于數(shù)據(jù)的分布和特征分析非常重要。

`count` 表示數(shù)據(jù)集中非空值的數(shù)量。對于 `Quantity` 列,所有 20 個值都是非空的;而對于 `Price` 列,只有 19 個非空值,說明有一個缺失值。

`mean` 表示列的平均值。`Quantity` 列的平均購買量是 2;`Price` 列的平均價格是 810.53。步驟3:處理缺失值。

`min` 表示列中的最小值。`Quantity` 列的最小購買量是 1;`Price` 列的最低價格是 50。

`25%` 表示第一四分位數(shù),即 25% 的數(shù)據(jù)點小于或等于這個值。對于 `Quantity` 列,第一四分位數(shù)是 1;對于 `Price` 列,這個值是 300。

`50%` 表示中位數(shù),即 50% 的數(shù)據(jù)點小于或等于這個值。`Quantity` 列的中位數(shù)為 2;`Price` 列的中位數(shù)為 1000。

`75%` 表示第三四分位數(shù),即 75% 的數(shù)據(jù)點小于或等于這個值。`Quantity` 列的第三四分位數(shù)是 3;`Price` 列的第三四分位數(shù)是 1200。

`max` 表示列中的最大值。`Quantity` 列的最大購買量是 5;`Price` 列的最高價格是 2400。

處理數(shù)據(jù)中的缺失值。在本案例中,OrderDatePrice列中存在缺失值。

# 查看缺失值
def missing_values(df):
    return df.isnull().sum()

print(missing_values(df))

# 填充缺失的價格列,以平均值替代
df['Price'].fillna(df['Price'].mean(), inplace=True)

# 填充缺失的訂單日期,以特定日期替代
df['OrderDate'].fillna('2024-01-01', inplace=True)

解析

  • df.isnull().sum():統(tǒng)計每一列的缺失值數(shù)量,幫助識別數(shù)據(jù)中的空缺項。
  • df['Price'].fillna(df['Price'].mean(), inplace=True):使用均值填充Price列的缺失值,確保數(shù)據(jù)的完整性。inplace=True 是一個參數(shù),用于指定操作是否在原數(shù)據(jù)框上進行修改。設(shè)置 inplace=True 后,操作會直接對原數(shù)據(jù)框進行更改,而不會返回一個新的數(shù)據(jù)框。這有助于節(jié)省內(nèi)存,但需要謹慎使用,因為數(shù)據(jù)的修改是不可逆的。
  • df['OrderDate'].fillna('2024-01-01', inplace=True):將OrderDate列的缺失值填充為默認日期2024-01-01。

步驟4:數(shù)據(jù)格式轉(zhuǎn)換

OrderDate列從字符串轉(zhuǎn)換為日期類型,以便后續(xù)進行時間序列分析。

# 將OrderDate轉(zhuǎn)換為日期類型
df['OrderDate'] = pd.to_datetime(df['OrderDate'])

解析pd.to_datetime(df['OrderDate'])OrderDate列轉(zhuǎn)換為日期時間格式,這樣可以方便后續(xù)的日期相關(guān)分析,例如排序或時間序列分析。

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

查找并刪除數(shù)據(jù)集中的重復(fù)值,以保證數(shù)據(jù)的準確性。

# 查找重復(fù)的行
duplicates = df[df.duplicated()]
print(duplicates)

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

解析

  • df.duplicated():標記數(shù)據(jù)集中重復(fù)的行。
  • df.drop_duplicates(inplace=True):刪除所有重復(fù)的行,確保數(shù)據(jù)集不包含重復(fù)記錄,從而提高分析結(jié)果的準確性。

步驟6:數(shù)據(jù)標準化

Price列進行標準化,以便后續(xù)的分析和建模。

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
df['Price'] = scaler.fit_transform(df[['Price']])

解析

  • 導入MinMaxScaler用于對數(shù)據(jù)進行縮放。
  • scaler.fit_transform(df[['Price']])Price列的值縮放到0到1之間,標準化后的數(shù)據(jù)更適合用于機器學習模型。

步驟7:保存預(yù)處理后的數(shù)據(jù)

最后,將預(yù)處理后的數(shù)據(jù)保存為一個新的CSV文件,以供后續(xù)分析使用。

# 導出為新文件
df.to_csv('ecommerce_customers_cleaned.csv', index=False)

解析df.to_csv()方法將處理過的數(shù)據(jù)保存為新的CSV文件,index=False表示不保存索引列。

總結(jié)

通過上述步驟,我們已經(jīng)對電子商務(wù)客戶數(shù)據(jù)集進行了數(shù)據(jù)預(yù)處理,涵蓋了數(shù)據(jù)的導入、查看、缺失值處理、數(shù)據(jù)格式轉(zhuǎn)換、重復(fù)值刪除、數(shù)據(jù)標準化以及數(shù)據(jù)導出。通過這個案例,學生可以理解數(shù)據(jù)預(yù)處理的關(guān)鍵步驟和技巧,為后續(xù)的數(shù)據(jù)分析和建模做好準備。

到此這篇關(guān)于Python pandas進行數(shù)據(jù)預(yù)處理的實現(xiàn)的文章就介紹到這了,更多相關(guān)pandas數(shù)據(jù)預(yù)處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用reportlab模塊生成PDF格式的文檔

    Python使用reportlab模塊生成PDF格式的文檔

    今天小編就為大家分享一篇關(guān)于Python使用reportlab模塊生成PDF格式的文檔,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • python如何讀取100G的大文件實例探究

    python如何讀取100G的大文件實例探究

    這篇文章主要為大家介紹了python如何讀取100G的大文件實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • python格式化字符串實例總結(jié)

    python格式化字符串實例總結(jié)

    這篇文章主要介紹了python格式化字符串的方法,實例展示了常見的幾類Python針對字符串的格式方法,非常實用,需要的朋友可以參考下
    2014-09-09
  • python實現(xiàn)照片集變成視頻的代碼實現(xiàn)

    python實現(xiàn)照片集變成視頻的代碼實現(xiàn)

    看著電腦里亂七八糟的照片,有大有小,寬高不一,突然想找個方式把他們統(tǒng)一起來,然后做成視頻更好,所以本文給大家介紹了python實現(xiàn)照片集變成視頻的實現(xiàn),需要的朋友可以參考下
    2024-10-10
  • 淺談五大Python Web框架

    淺談五大Python Web框架

    Python這么多框架,能挨個玩?zhèn)€遍的人不多,坦白的說我也只用過其中的三個開發(fā)過項目,另外一些稍微接觸過,所以這里只能淺談一下,歡迎懂行的朋友們補充
    2017-03-03
  • Python身份驗證第三方庫(7個)

    Python身份驗證第三方庫(7個)

    身份驗證在很多項目上都可以用到,本文主要介紹了Python身份驗證第三方庫(7個),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • python用線性回歸預(yù)測股票價格的實現(xiàn)代碼

    python用線性回歸預(yù)測股票價格的實現(xiàn)代碼

    這篇文章主要介紹了python用線性回歸預(yù)測股票價格的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • python用Pygal如何生成漂亮的SVG圖像詳解

    python用Pygal如何生成漂亮的SVG圖像詳解

    本篇文章講述python如何用 Pygal 來生成漂亮的 SVG 圖表,并能夠利用 Python 中的 Flask 框架來顯示你的 SVG 圖像,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • 利用pyuic5將ui文件轉(zhuǎn)換為py文件的方法

    利用pyuic5將ui文件轉(zhuǎn)換為py文件的方法

    今天小編就為大家分享一篇利用pyuic5將ui文件轉(zhuǎn)換為py文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 淺析Python中的變量賦值與多重賦值

    淺析Python中的變量賦值與多重賦值

    在?Python?中,變量賦值是編程中常見的操作之一,本文將深入探討?Python?中的變量賦值和多重賦值,包括其基本語法、特性、應(yīng)用場景以及示例代碼,需要的可以參考下
    2024-03-03

最新評論