亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python進(jìn)行數(shù)據(jù)清洗與存儲(chǔ)的基本方法

 更新時(shí)間:2024年11月12日 08:58:34   作者:chusheng1840  
在爬蟲(chóng)數(shù)據(jù)獲取完成后,數(shù)據(jù)往往是“原始”的,不適合直接使用,清洗和存儲(chǔ)是將爬取到的原始數(shù)據(jù)轉(zhuǎn)化為有用信息的關(guān)鍵步驟,本文將系統(tǒng)地介紹 Python 中進(jìn)行數(shù)據(jù)清洗與存儲(chǔ)的基本方法,幫助新手理解如何處理爬蟲(chóng)數(shù)據(jù),使其更加適合分析和使用,需要的朋友可以參考下

1. 數(shù)據(jù)清洗的意義和作用

數(shù)據(jù)清洗指的是將爬取到的數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化、準(zhǔn)確且一致的格式,去除無(wú)效數(shù)據(jù)、處理缺失值、規(guī)范化格式、解析數(shù)據(jù)等。無(wú)論是進(jìn)一步的分析、模型訓(xùn)練還是數(shù)據(jù)庫(kù)存儲(chǔ),清洗后的數(shù)據(jù)都將更加高效和精準(zhǔn)。

爬蟲(chóng)獲取的數(shù)據(jù)常見(jiàn)問(wèn)題:

  • 數(shù)據(jù)缺失:某些字段可能為空或格式不一致。
  • 噪音數(shù)據(jù):可能包含廣告、注釋等無(wú)用信息。
  • 格式不規(guī)范:如日期格式、文本的編碼、大小寫(xiě)不一致等。

在本文中,我們將使用一些示例代碼展示如何進(jìn)行數(shù)據(jù)清洗和存儲(chǔ)。

2. 常用的數(shù)據(jù)清洗庫(kù)

Python 提供了多種庫(kù)用于數(shù)據(jù)清洗,其中最常用的有:

  • Pandas:提供了靈活的數(shù)據(jù)操作功能,可用于數(shù)據(jù)的清洗、轉(zhuǎn)換和處理。
  • re(正則表達(dá)式庫(kù)):用于字符串模式匹配和數(shù)據(jù)清理。
  • BeautifulSoup:用于解析 HTML,清洗網(wǎng)頁(yè)數(shù)據(jù)。
  • NumPy:用于處理數(shù)值數(shù)據(jù),補(bǔ)齊缺失值等。

安裝 Pandas 和 BeautifulSoup:

pip install pandas beautifulsoup4

3. 示例數(shù)據(jù)集

假設(shè)我們爬取了一個(gè)電商網(wǎng)站的商品信息,數(shù)據(jù)如下:

商品名稱(chēng)價(jià)格評(píng)論數(shù)上架日期
Apple iPhone 12$9992002023年1月1日
Samsung Galaxy S21價(jià)格缺失150無(wú)
Xiaomi Mi 11$699評(píng)論缺失2023年3月5日
Sony Xperia 5$7991002023/05/10
OPPO Find X3價(jià)格錯(cuò)誤502022-12-01

可以看到,爬取的數(shù)據(jù)包含以下問(wèn)題:

  • 某些價(jià)格和評(píng)論數(shù)缺失。
  • 日期格式不一致。
  • 某些價(jià)格字段格式不正確。
  • “價(jià)格缺失”和“評(píng)論缺失”這樣的非標(biāo)準(zhǔn)信息,需要轉(zhuǎn)化為缺失值。

我們將基于這個(gè)數(shù)據(jù)集來(lái)演示清洗步驟。

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

4.1 將數(shù)據(jù)載入 Pandas DataFrame

將數(shù)據(jù)轉(zhuǎn)換為 Pandas 的 DataFrame 格式,便于操作。

import pandas as pd

# 創(chuàng)建示例數(shù)據(jù)
data = {
    '商品名稱(chēng)': ['Apple iPhone 12', 'Samsung Galaxy S21', 'Xiaomi Mi 11', 'Sony Xperia 5', 'OPPO Find X3'],
    '價(jià)格': ['$999', '價(jià)格缺失', '$699', '$799', '價(jià)格錯(cuò)誤'],
    '評(píng)論數(shù)': [200, 150, '評(píng)論缺失', 100, 50],
    '上架日期': ['2023年1月1日', '無(wú)', '2023年3月5日', '2023/05/10', '2022-12-01']
}
df = pd.DataFrame(data)
print(df)

輸出為:

           商品名稱(chēng)      價(jià)格   評(píng)論數(shù)        上架日期
0  Apple iPhone 12     $999     200     2023年1月1日
1 Samsung Galaxy S21 價(jià)格缺失     150            無(wú)
2    Xiaomi Mi 11     $699 評(píng)論缺失     2023年3月5日
3      Sony Xperia 5   $799     100   2023/05/10
4        OPPO Find X3 價(jià)格錯(cuò)誤     50    2022-12-01

4.2 處理缺失值

缺失值可以通過(guò)刪除行或填充方式處理。先將“價(jià)格缺失”和“評(píng)論缺失”字段轉(zhuǎn)化為 Pandas 可識(shí)別的缺失值(NaN)。

import numpy as np

# 將“價(jià)格缺失”、“評(píng)論缺失”轉(zhuǎn)化為 NaN
df['價(jià)格'] = df['價(jià)格'].replace(['價(jià)格缺失', '價(jià)格錯(cuò)誤'], np.nan)
df['評(píng)論數(shù)'] = df['評(píng)論數(shù)'].replace('評(píng)論缺失', np.nan)

print(df)

4.3 清洗價(jià)格字段

價(jià)格字段中包含 $ 符號(hào),并且類(lèi)型為字符串。我們可以去除符號(hào)并將其轉(zhuǎn)換為數(shù)值類(lèi)型,以便后續(xù)分析。

# 去除 $ 符號(hào)并轉(zhuǎn)換為浮點(diǎn)數(shù)
df['價(jià)格'] = df['價(jià)格'].str.replace('$', '').astype(float)
print(df)

4.4 處理日期格式

上架日期包含多種格式??梢允褂?nbsp;pd.to_datetime 函數(shù)進(jìn)行格式統(tǒng)一化。

# 統(tǒng)一上架日期格式
df['上架日期'] = pd.to_datetime(df['上架日期'], errors='coerce')
print(df)

在這里,我們使用 errors='coerce' 選項(xiàng)來(lái)處理格式不正確的日期,例如“無(wú)”,會(huì)將其轉(zhuǎn)換為缺失值。

4.5 填充缺失值

我們可以根據(jù)需求填充缺失值,例如將價(jià)格的缺失值替換為均值,或填入特定值。

# 用平均價(jià)格填充缺失值
df['價(jià)格'].fillna(df['價(jià)格'].mean(), inplace=True)

# 填充評(píng)論數(shù)為 0
df['評(píng)論數(shù)'].fillna(0, inplace=True)

print(df)

5. 數(shù)據(jù)存儲(chǔ)

完成清洗后,數(shù)據(jù)可以存儲(chǔ)到不同的文件格式中,方便后續(xù)分析和使用。常見(jiàn)的數(shù)據(jù)存儲(chǔ)格式包括 CSV、Excel、SQL 數(shù)據(jù)庫(kù)和 JSON。

5.1 保存為 CSV 文件

CSV 文件是數(shù)據(jù)存儲(chǔ)的常用格式,適合小規(guī)模數(shù)據(jù)。

df.to_csv('cleaned_data.csv', index=False)

5.2 保存為 Excel 文件

如果數(shù)據(jù)需要進(jìn)一步操作或供人查看,Excel 格式是不錯(cuò)的選擇。

df.to_excel('cleaned_data.xlsx', index=False)

5.3 保存到 SQL 數(shù)據(jù)庫(kù)

SQL 數(shù)據(jù)庫(kù)更適合大規(guī)模數(shù)據(jù),可以使用 SQLite、MySQL 等。以下是使用 SQLite 存儲(chǔ)數(shù)據(jù)的示例:

import sqlite3

# 連接 SQLite 數(shù)據(jù)庫(kù)(若文件不存在會(huì)自動(dòng)創(chuàng)建)
conn = sqlite3.connect('products.db')
df.to_sql('products', conn, if_exists='replace', index=False)
conn.close()

5.4 保存為 JSON 文件

JSON 文件常用于數(shù)據(jù)傳輸和存儲(chǔ),適合嵌套結(jié)構(gòu)的數(shù)據(jù)。

df.to_json('cleaned_data.json', orient='records', force_ascii=False)

6. 數(shù)據(jù)清洗與存儲(chǔ)的最佳實(shí)踐

  • 格式統(tǒng)一:盡可能統(tǒng)一字段的格式,方便后續(xù)的處理和存儲(chǔ)。
  • 處理缺失值:根據(jù)具體需求選擇合適的填充策略。
  • 保留原始數(shù)據(jù):清洗過(guò)程中可保留一份原始數(shù)據(jù)副本,便于溯源。
  • 數(shù)據(jù)量的選擇:小規(guī)模數(shù)據(jù)可以存儲(chǔ)為 CSV 或 Excel,大規(guī)模數(shù)據(jù)推薦存儲(chǔ)到數(shù)據(jù)庫(kù)。
  • 數(shù)據(jù)驗(yàn)證:清洗和存儲(chǔ)后,檢查數(shù)據(jù)的正確性,如統(tǒng)計(jì)均值、查看格式是否符合預(yù)期。

7. 小結(jié)

本文介紹了 Python 爬蟲(chóng)數(shù)據(jù)的清洗與存儲(chǔ)方法,從處理缺失值、統(tǒng)一格式、清洗價(jià)格和日期等方面入手,并展示了如何將清洗后的數(shù)據(jù)保存為多種格式。通過(guò)掌握這些數(shù)據(jù)清洗和存儲(chǔ)技巧,可以大幅提升爬蟲(chóng)數(shù)據(jù)的質(zhì)量和可用性。

到此這篇關(guān)于使用Python進(jìn)行數(shù)據(jù)清洗與存儲(chǔ)的基本方法的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)清洗與存儲(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python日志模塊loguru詳解

    python日志模塊loguru詳解

    大家好,本篇文章主要講的是python日志模塊loguru詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02
  • 基于Python?schedule的任務(wù)調(diào)度詳解

    基于Python?schedule的任務(wù)調(diào)度詳解

    schedule?是Python的第三方任務(wù)調(diào)度庫(kù),可以用來(lái)做定時(shí)任務(wù),這篇文章主要為大家介紹了Python利用schedule進(jìn)行任務(wù)調(diào)度的相關(guān)操作,需要的可以了解下
    2025-02-02
  • python中進(jìn)程間通信詳細(xì)介紹

    python中進(jìn)程間通信詳細(xì)介紹

    大家好,本篇文章主要講的是python中進(jìn)程間通信詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • 使用PDB模式調(diào)試Python程序介紹

    使用PDB模式調(diào)試Python程序介紹

    這篇文章主要介紹了使用PDB模式調(diào)試Python程序介紹,本文講解了PDB模式的使用語(yǔ)法,著重講解PDB模式下的常用命令,需要的朋友可以參考下
    2015-04-04
  • djano一對(duì)一、多對(duì)多、分頁(yè)實(shí)例代碼

    djano一對(duì)一、多對(duì)多、分頁(yè)實(shí)例代碼

    在本篇文章里小編給大家整理的是關(guān)于djano一對(duì)一,多對(duì)多,分頁(yè)實(shí)例代碼以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • python中把元組轉(zhuǎn)換為namedtuple方法

    python中把元組轉(zhuǎn)換為namedtuple方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中把元組轉(zhuǎn)換為namedtuple方法,有興趣的朋友們可以參考下。
    2020-12-12
  • django框架兩個(gè)使用模板實(shí)例

    django框架兩個(gè)使用模板實(shí)例

    這篇文章主要介紹了django框架使用模板方法,結(jié)合兩個(gè)具體實(shí)例形式詳細(xì)分析了Django框架模板的相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • Flask搭建Web應(yīng)用程序的方法示例

    Flask搭建Web應(yīng)用程序的方法示例

    Flask是一個(gè)使用Python編寫(xiě)的輕量級(jí)Web應(yīng)用框架,本文我們將介紹一個(gè)使用Flask逐步搭建Web應(yīng)用程序的簡(jiǎn)單入門(mén)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • python3+PyQt5圖形項(xiàng)的自定義和交互 python3實(shí)現(xiàn)page Designer應(yīng)用程序

    python3+PyQt5圖形項(xiàng)的自定義和交互 python3實(shí)現(xiàn)page Designer應(yīng)用程序

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5圖形項(xiàng)的自定義和交互,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Django的基本運(yùn)用之Django垃圾分類(lèi)詳解

    Django的基本運(yùn)用之Django垃圾分類(lèi)詳解

    大家都知道Django 是一個(gè)由 Python 編寫(xiě)的一個(gè)開(kāi)放源代碼的 Web 應(yīng)用框架。接下來(lái)通過(guò)本文給大家介紹Django的基本運(yùn)用之Django垃圾分類(lèi)詳解,感興趣的朋友一起看看吧
    2021-09-09

最新評(píng)論