最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

import pandas as pd

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

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

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

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

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

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

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

解析

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

運(yùn)行結(jié)果

   CustomerID   OrderDate Product  Quantity   Price
0       C001  2024-01-10    智能手機(jī)         2   500.0
1       C002  2024-01-12   筆記本電腦         1  1200.0
2       C003         NaN      耳機(jī)         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ù)集的整體情況。

運(yùn)行結(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ù)量,這對(duì)于后續(xù)判斷是否有缺失值非常有幫助。

df.describe():對(duì)數(shù)值列進(jìn)行統(tǒng)計(jì)分析,提供如均值、標(biāo)準(zhǔn)差等信息。

運(yùn)行結(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)計(jì)信息,如均值、中位數(shù)、標(biāo)準(zhǔn)差等,這對(duì)于數(shù)據(jù)的分布和特征分析非常重要。

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

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

`min` 表示列中的最小值。`Quantity` 列的最小購(gòu)買量是 1;`Price` 列的最低價(jià)格是 50。

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

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

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

`max` 表示列中的最大值。`Quantity` 列的最大購(gòu)買量是 5;`Price` 列的最高價(jià)格是 2400。

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

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

print(missing_values(df))

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

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

解析

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

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

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

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

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

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

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

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

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

解析

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

步驟6:數(shù)據(jù)標(biāo)準(zhǔn)化

對(duì)Price列進(jìn)行標(biāo)準(zhǔn)化,以便后續(xù)的分析和建模。

from sklearn.preprocessing import MinMaxScaler

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

解析

  • 導(dǎo)入MinMaxScaler用于對(duì)數(shù)據(jù)進(jìn)行縮放。
  • scaler.fit_transform(df[['Price']])Price列的值縮放到0到1之間,標(biāo)準(zhǔn)化后的數(shù)據(jù)更適合用于機(jī)器學(xué)習(xí)模型。

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

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

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

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

總結(jié)

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

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

相關(guān)文章

最新評(píng)論

安康市| 岫岩| 大余县| 桐乡市| 澄迈县| 新竹市| 中宁县| 龙江县| 梅河口市| 祁东县| 兰溪市| 安西县| 德庆县| 明水县| 武胜县| 黔东| 冕宁县| 大理市| 汝南县| 泸州市| 太保市| 高青县| 赫章县| 探索| 黄石市| 平和县| 金乡县| 大荔县| 定襄县| 芒康县| 崇明县| 财经| 上栗县| 南澳县| 灌云县| 沛县| 普宁市| 莱芜市| 平度市| 和平县| 洞口县|