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

使用Python進行數據清洗與存儲的基本方法

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

1. 數據清洗的意義和作用

數據清洗指的是將爬取到的數據轉換為結構化、準確且一致的格式,去除無效數據、處理缺失值、規(guī)范化格式、解析數據等。無論是進一步的分析、模型訓練還是數據庫存儲,清洗后的數據都將更加高效和精準。

爬蟲獲取的數據常見問題:

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

在本文中,我們將使用一些示例代碼展示如何進行數據清洗和存儲。

2. 常用的數據清洗庫

Python 提供了多種庫用于數據清洗,其中最常用的有:

  • Pandas:提供了靈活的數據操作功能,可用于數據的清洗、轉換和處理。
  • re(正則表達式庫):用于字符串模式匹配和數據清理。
  • BeautifulSoup:用于解析 HTML,清洗網頁數據。
  • NumPy:用于處理數值數據,補齊缺失值等。

安裝 Pandas 和 BeautifulSoup:

pip install pandas beautifulsoup4

3. 示例數據集

假設我們爬取了一個電商網站的商品信息,數據如下:

商品名稱價格評論數上架日期
Apple iPhone 12$9992002023年1月1日
Samsung Galaxy S21價格缺失150
Xiaomi Mi 11$699評論缺失2023年3月5日
Sony Xperia 5$7991002023/05/10
OPPO Find X3價格錯誤502022-12-01

可以看到,爬取的數據包含以下問題:

  • 某些價格和評論數缺失。
  • 日期格式不一致。
  • 某些價格字段格式不正確。
  • “價格缺失”和“評論缺失”這樣的非標準信息,需要轉化為缺失值。

我們將基于這個數據集來演示清洗步驟。

4. 數據清洗步驟

4.1 將數據載入 Pandas DataFrame

將數據轉換為 Pandas 的 DataFrame 格式,便于操作。

import pandas as pd

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

輸出為:

           商品名稱      價格   評論數        上架日期
0  Apple iPhone 12     $999     200     2023年1月1日
1 Samsung Galaxy S21 價格缺失     150            無
2    Xiaomi Mi 11     $699 評論缺失     2023年3月5日
3      Sony Xperia 5   $799     100   2023/05/10
4        OPPO Find X3 價格錯誤     50    2022-12-01

4.2 處理缺失值

缺失值可以通過刪除行或填充方式處理。先將“價格缺失”和“評論缺失”字段轉化為 Pandas 可識別的缺失值(NaN)。

import numpy as np

# 將“價格缺失”、“評論缺失”轉化為 NaN
df['價格'] = df['價格'].replace(['價格缺失', '價格錯誤'], np.nan)
df['評論數'] = df['評論數'].replace('評論缺失', np.nan)

print(df)

4.3 清洗價格字段

價格字段中包含 $ 符號,并且類型為字符串。我們可以去除符號并將其轉換為數值類型,以便后續(xù)分析。

# 去除 $ 符號并轉換為浮點數
df['價格'] = df['價格'].str.replace('$', '').astype(float)
print(df)

4.4 處理日期格式

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

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

在這里,我們使用 errors='coerce' 選項來處理格式不正確的日期,例如“無”,會將其轉換為缺失值。

4.5 填充缺失值

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

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

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

print(df)

5. 數據存儲

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

5.1 保存為 CSV 文件

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

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

5.2 保存為 Excel 文件

如果數據需要進一步操作或供人查看,Excel 格式是不錯的選擇。

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

5.3 保存到 SQL 數據庫

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

import sqlite3

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

5.4 保存為 JSON 文件

JSON 文件常用于數據傳輸和存儲,適合嵌套結構的數據。

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

6. 數據清洗與存儲的最佳實踐

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

7. 小結

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

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

相關文章

  • python實現批量獲取指定文件夾下的所有文件的廠商信息

    python實現批量獲取指定文件夾下的所有文件的廠商信息

    這篇文章主要介紹了python實現批量獲取指定文件夾下的所有文件的廠商信息的方法,是非常實用的技巧,涉及到文件的讀寫與字典的操作等技巧,需要的朋友可以參考下
    2014-09-09
  • Python?Pandas中布爾索引的用法詳解

    Python?Pandas中布爾索引的用法詳解

    布爾索引是一種使用?DataFrame?中數據的實際值的索引。本文將通過一些示例為大家詳細講講Python中布爾索引的用法,需要的可以參考一下
    2022-08-08
  • Python 實現黑客帝國中的字符雨的示例代碼

    Python 實現黑客帝國中的字符雨的示例代碼

    這篇文章主要介紹了Python 實現黑客帝國中的字符雨的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python實現去除列表中重復元素的方法總結【7種方法】

    Python實現去除列表中重復元素的方法總結【7種方法】

    今天小編就為大家分享一篇關于Python實現去除列表中重復元素的方法總結【7種方法】,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python中使用print函數進行不換行打印問題

    Python中使用print函數進行不換行打印問題

    這篇文章主要介紹了Python中使用print函數進行不換行打印問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • matlab中imadjust函數的作用及應用舉例

    matlab中imadjust函數的作用及應用舉例

    這篇文章主要介紹了matlab中imadjust函數的作用及應用舉例,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python使用PyMuPDF操作PDF的代碼示例

    Python使用PyMuPDF操作PDF的代碼示例

    PyMuPDF,也被稱為fitz(這是其導入時的常用別名),是一個功能強大的Python庫,用于處理PDF和其他文檔格式,與 PyPDF2相比,PyMuPDF提供了更多的功能和更好的性能,特別是在處理復雜的PDF文件時,本文給大家介紹了Python使用PyMuPDF操作PDF,需要的朋友可以參考下
    2025-02-02
  • python去除字符串中換行符的四種方法

    python去除字符串中換行符的四種方法

    python中換行符的作用就是將字符串劃分為上下兩行去輸出顯示,但是在有些情況下是不需要去用到換行符的,這個時候就要用方法將其給去除掉,這一篇文章小編會來給大家介紹一下python去除字符串中換行符的方法,感興趣的話就一起往下看看吧
    2024-04-04
  • 對pytorch中的梯度更新方法詳解

    對pytorch中的梯度更新方法詳解

    今天小編就為大家分享一篇對pytorch中的梯度更新方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python借助with語句實現代碼段只執(zhí)行有限次

    Python借助with語句實現代碼段只執(zhí)行有限次

    這篇文章主要介紹了Python借助with語句實現代碼段只執(zhí)行有限次,首先要定義一個能夠在with語句中使用的類實現enter和exit,下文詳細介紹需要的小伙伴可以參考一下
    2022-03-03

最新評論

张家川| 定陶县| 务川| 天柱县| 上饶市| 西盟| 锡林浩特市| 巴林左旗| 和政县| 阜平县| 长治市| 章丘市| 漾濞| 永川市| 大渡口区| 洛宁县| 宁强县| 高陵县| 麻江县| 奉新县| 沂源县| 永丰县| 利辛县| 安塞县| 苏尼特左旗| 扬州市| 治多县| 建瓯市| 焉耆| 青龙| 图木舒克市| 白玉县| 高阳县| 黔南| 洪江市| 双牌县| 盐源县| 曲周县| 淳化县| 正宁县| 多伦县|