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

2025最新Pandas數(shù)據(jù)清洗與數(shù)據(jù)處理方法大全

 更新時(shí)間:2025年06月27日 10:02:55   作者:貓頭虎  
Pandas 是 Python 中最常用的數(shù)據(jù)分析庫之一,它可以幫助我們高效地進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)處理及數(shù)據(jù)治理,本文將為你提供一篇超詳細(xì)的技術(shù)教程,需要的可以了解下

Pandas 是 Python 中最常用的數(shù)據(jù)分析庫之一,它可以幫助我們高效地進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)處理及數(shù)據(jù)治理。隨著大數(shù)據(jù)的不斷發(fā)展,Pandas 也在不斷優(yōu)化,尤其是處理千萬級(jí)大數(shù)據(jù)時(shí),如何高效清洗和治理數(shù)據(jù)成為了一個(gè)非常重要的話題。本文將為你提供一篇超詳細(xì)的技術(shù)教程,涵蓋如何使用 Pandas 進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)治理和數(shù)據(jù)處理,并針對(duì)千萬級(jí)大數(shù)據(jù)的處理方法做了特別的講解。

1. 數(shù)據(jù)清洗概述

數(shù)據(jù)清洗是數(shù)據(jù)分析的第一步,目的是通過去除數(shù)據(jù)中的噪音和錯(cuò)誤來提高數(shù)據(jù)質(zhì)量。常見的數(shù)據(jù)清洗步驟包括:

  • 刪除缺失值
  • 填充缺失值
  • 去除重復(fù)數(shù)據(jù)
  • 標(biāo)準(zhǔn)化數(shù)據(jù)
  • 處理異常值

在這部分,我們將詳細(xì)介紹每一個(gè)步驟,并提供相應(yīng)的代碼示例。

1.1 刪除缺失值

缺失值是數(shù)據(jù)清洗中的常見問題。我們可以使用 dropna() 函數(shù)刪除含有缺失值的行或列。

import pandas as pd

# 創(chuàng)建一個(gè)包含缺失值的DataFrame
data = {
    'name': ['Tom', 'Jerry', 'Mickey', None],
    'age': [20, None, 22, 25],
    'city': ['New York', 'Los Angeles', 'Chicago', 'Miami']
}
df = pd.DataFrame(data)

# 刪除包含缺失值的行
df_cleaned = df.dropna()
print(df_cleaned)

1.2 填充缺失值

有時(shí)候我們不希望丟失含有缺失值的數(shù)據(jù),而是希望通過合適的方法填充它們。Pandas 提供了 fillna() 函數(shù)來填充缺失值。

# 使用特定值填充缺失值
df_filled = df.fillna({'age': 0, 'name': 'Unknown'})
print(df_filled)

1.3 去除重復(fù)數(shù)據(jù)

數(shù)據(jù)集中的重復(fù)記錄也需要清洗,我們可以使用 drop_duplicates() 函數(shù)去除重復(fù)的行。

# 創(chuàng)建一個(gè)包含重復(fù)數(shù)據(jù)的DataFrame
data = {
    'name': ['Tom', 'Jerry', 'Tom', 'Mickey'],
    'age': [20, 21, 20, 22],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago']
}
df = pd.DataFrame(data)

# 去除重復(fù)行
df_no_duplicates = df.drop_duplicates()
print(df_no_duplicates)

1.4 標(biāo)準(zhǔn)化數(shù)據(jù)

數(shù)據(jù)標(biāo)準(zhǔn)化是將數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的格式。Pandas 中可以使用 apply() 函數(shù)對(duì)數(shù)據(jù)列進(jìn)行標(biāo)準(zhǔn)化處理。

# 假設(shè)我們需要將名字列中的所有字母轉(zhuǎn)為大寫
df['name'] = df['name'].apply(lambda x: x.upper())
print(df)

1.5 處理異常值

異常值可能會(huì)極大地影響分析結(jié)果,因此我們需要對(duì)數(shù)據(jù)中的異常值進(jìn)行識(shí)別和處理。常見的處理方式包括刪除、替換或?qū)⑵錃w一化。

# 通過設(shè)定一個(gè)合理范圍來過濾掉異常值
df = df[df['age'] > 18]  # 假設(shè)我們只關(guān)心18歲以上的人
print(df)

2. 數(shù)據(jù)治理與數(shù)據(jù)處理

數(shù)據(jù)治理是確保數(shù)據(jù)質(zhì)量、可用性和安全性的過程。數(shù)據(jù)處理是指對(duì)數(shù)據(jù)進(jìn)行格式化、轉(zhuǎn)換、分組、篩選等操作。我們將在下面的部分詳細(xì)介紹如何使用 Pandas 完成這些任務(wù)。

2.1 數(shù)據(jù)格式化與轉(zhuǎn)換

有時(shí),我們需要將數(shù)據(jù)轉(zhuǎn)換為特定的格式,比如將日期列轉(zhuǎn)換為日期時(shí)間格式。

# 假設(shè)我們有一列日期字符串
df['date'] = pd.to_datetime(df['date'])
print(df['date'])

2.2 數(shù)據(jù)分組與聚合

數(shù)據(jù)分組和聚合是數(shù)據(jù)處理中常用的操作,可以幫助我們?cè)诜诸悢?shù)據(jù)上進(jìn)行匯總分析。

# 按照城市分組并計(jì)算每個(gè)城市的平均年齡
df_grouped = df.groupby('city')['age'].mean()
print(df_grouped)

2.3 數(shù)據(jù)合并與連接

在實(shí)際應(yīng)用中,常常需要將多個(gè)數(shù)據(jù)集進(jìn)行合并。Pandas 提供了 merge() 函數(shù)來進(jìn)行數(shù)據(jù)的合并。

# 假設(shè)我們有兩個(gè)DataFrame
df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['Tom', 'Jerry', 'Mickey']})
df2 = pd.DataFrame({'id': [1, 2, 3], 'age': [20, 21, 22]})

# 按照'id'列合并兩個(gè)DataFrame
df_merged = pd.merge(df1, df2, on='id')
print(df_merged)

3. 千萬級(jí)大數(shù)據(jù)處理方法

當(dāng)數(shù)據(jù)量達(dá)到千萬級(jí)時(shí),Pandas 的性能可能會(huì)受到挑戰(zhàn),以下是一些處理大數(shù)據(jù)的技巧:

3.1 分批加載大數(shù)據(jù)

對(duì)于非常大的數(shù)據(jù)集,Pandas 提供了 chunksize 參數(shù)可以讓我們分批次加載數(shù)據(jù)。這樣可以避免一次性將所有數(shù)據(jù)加載到內(nèi)存中,導(dǎo)致內(nèi)存溢出。

# 使用 chunksize 參數(shù)分批加載數(shù)據(jù)
chunk_size = 10000
chunks = pd.read_csv('large_data.csv', chunksize=chunk_size)

for chunk in chunks:
    process(chunk)  # 對(duì)每個(gè)批次的數(shù)據(jù)進(jìn)行處理

3.2 使用 Dask 進(jìn)行大數(shù)據(jù)處理

Dask 是一個(gè)分布式計(jì)算庫,它可以擴(kuò)展 Pandas 的能力,處理比內(nèi)存大的數(shù)據(jù)集。通過 Dask,我們可以實(shí)現(xiàn)類似于 Pandas 的操作,同時(shí)處理大數(shù)據(jù)。

import dask.dataframe as dd

# 讀取大文件
ddf = dd.read_csv('large_data.csv')

# 對(duì)數(shù)據(jù)進(jìn)行操作
ddf_grouped = ddf.groupby('column_name').mean().compute()
print(ddf_grouped)

3.3 數(shù)據(jù)存儲(chǔ)優(yōu)化

在處理大數(shù)據(jù)時(shí),選擇合適的數(shù)據(jù)存儲(chǔ)格式非常重要。例如,我們可以選擇 Parquet 格式,這種格式支持更高效的讀取和寫入操作,并且支持壓縮。

# 將數(shù)據(jù)保存為Parquet格式
df.to_parquet('data.parquet')

4. 數(shù)據(jù)處理一條龍 Demo

在這一部分,我們將通過一個(gè)完整的示例來展示如何使用 Pandas 從數(shù)據(jù)讀取、清洗到數(shù)據(jù)分析的整個(gè)過程。假設(shè)我們有一個(gè)包含用戶信息的 CSV 文件,我們將對(duì)其進(jìn)行處理,清理掉缺失值、去除重復(fù)數(shù)據(jù),進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化、分組統(tǒng)計(jì),并最終進(jìn)行可視化展示。

4.1 導(dǎo)入數(shù)據(jù)

首先,我們從 CSV 文件中導(dǎo)入數(shù)據(jù),假設(shè)文件名為 user_data.csv。

import pandas as pd

# 讀取CSV文件
df = pd.read_csv('user_data.csv')

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

4.2 數(shù)據(jù)清洗

1.刪除缺失值

首先,我們清理掉含有缺失值的行,以確保數(shù)據(jù)完整性。

# 刪除任何含有缺失值的行
df_cleaned = df.dropna()
print(df_cleaned.head())

2.填充缺失值

如果我們不希望丟失含有缺失值的行,可以選擇填充缺失值。例如,填充 age 列中的缺失值為 0,name 列為 ‘Unknown’。

# 填充缺失值
df_filled = df.fillna({'age': 0, 'name': 'Unknown'})
print(df_filled.head())

3.去除重復(fù)數(shù)據(jù)

接下來,我們檢查并刪除重復(fù)的數(shù)據(jù)記錄。

# 去除重復(fù)行
df_no_duplicates = df.drop_duplicates()
print(df_no_duplicates.head())

4.3 數(shù)據(jù)標(biāo)準(zhǔn)化

假設(shè) name 列的所有名字格式不一致(有些是大寫,有些是小寫),我們可以將所有名字轉(zhuǎn)換為大寫字母,統(tǒng)一格式。

# 將名字轉(zhuǎn)換為大寫
df['name'] = df['name'].apply(lambda x: x.upper())
print(df.head())

4.4 數(shù)據(jù)分析

1.分組統(tǒng)計(jì)

假設(shè)我們需要按 city 列進(jìn)行分組,并統(tǒng)計(jì)每個(gè)城市的平均年齡。

# 按照城市分組并計(jì)算每個(gè)城市的平均年齡
df_grouped = df.groupby('city')['age'].mean()
print(df_grouped)

2.聚合操作

除了計(jì)算平均值,我們還可以執(zhí)行更多的聚合操作,如計(jì)算最大值和最小值。

# 獲取每個(gè)城市的年齡最大值和最小值
df_aggregated = df.groupby('city')['age'].agg(['max', 'min'])
print(df_aggregated)

4.5 數(shù)據(jù)可視化

最后,我們將使用 matplotlib 進(jìn)行簡單的可視化展示,查看每個(gè)城市的平均年齡。

import matplotlib.pyplot as plt

# 創(chuàng)建一個(gè)柱狀圖
df_grouped.plot(kind='bar', title='Average Age by City')
plt.ylabel('Average Age')
plt.xlabel('City')
plt.show()

4.6 完整代碼總結(jié)

以下是整個(gè)數(shù)據(jù)處理過程的完整代碼:

import pandas as pd
import matplotlib.pyplot as plt

# 讀取CSV文件
df = pd.read_csv('user_data.csv')

# 數(shù)據(jù)清洗
df_cleaned = df.dropna()  # 刪除缺失值
df_filled = df.fillna({'age': 0, 'name': 'Unknown'})  # 填充缺失值
df_no_duplicates = df.drop_duplicates()  # 去除重復(fù)數(shù)據(jù)

# 數(shù)據(jù)標(biāo)準(zhǔn)化
df['name'] = df['name'].apply(lambda x: x.upper())

# 數(shù)據(jù)分析
df_grouped = df.groupby('city')['age'].mean()  # 按城市計(jì)算平均年齡
df_aggregated = df.groupby('city')['age'].agg(['max', 'min'])  # 獲取最大值和最小值

# 數(shù)據(jù)可視化
df_grouped.plot(kind='bar', title='Average Age by City')
plt.ylabel('Average Age')
plt.xlabel('City')
plt.show()

4.7 小結(jié)

通過這個(gè)一條龍的示例,我們展示了如何從數(shù)據(jù)導(dǎo)入開始,經(jīng)過數(shù)據(jù)清洗、數(shù)據(jù)標(biāo)準(zhǔn)化、分組統(tǒng)計(jì)、聚合分析,最后到數(shù)據(jù)可視化的整個(gè)流程。無論是處理小數(shù)據(jù)還是大數(shù)據(jù),掌握這些基礎(chǔ)的數(shù)據(jù)處理技巧對(duì)任何數(shù)據(jù)分析任務(wù)都是必不可少的。

5. 總結(jié)

本文詳細(xì)介紹了如何使用 Pandas 進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)治理、數(shù)據(jù)處理,并重點(diǎn)講解了如何處理千萬級(jí)大數(shù)據(jù)。通過掌握這些技巧,你可以高效地清理數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù)格式,并在處理大數(shù)據(jù)時(shí)保持性能。

對(duì)于任何涉及數(shù)據(jù)清洗和處理的任務(wù),掌握 Pandas 都是必不可少的。

以上就是2025最新Pandas數(shù)據(jù)清洗與數(shù)據(jù)處理方法大全的詳細(xì)內(nèi)容,更多關(guān)于Pandas數(shù)據(jù)清洗與處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python腳本實(shí)現(xiàn)一鍵自動(dòng)整理辦公文件

    Python腳本實(shí)現(xiàn)一鍵自動(dòng)整理辦公文件

    這篇文章主要介紹了Python實(shí)現(xiàn)腳本一鍵自動(dòng)整理辦公文件,文件下載文件夾就變得亂七八糟,整理的時(shí)候非常痛苦,巴不得有一個(gè)自動(dòng)化的工具幫我歸類文檔。下面小編就給大家分享自動(dòng)化整理文件的小技巧,需要的朋友可以參考一下文章內(nèi)容
    2022-02-02
  • python使用pandas從minio讀取excel文件方式

    python使用pandas從minio讀取excel文件方式

    從MinIO讀取Excel文件并使用Pandas處理的步驟:首先使用MinIOPythonSDK下載文件,然后使用Pandas讀取,總結(jié):安裝依賴需使用Pandas和MinIOPythonSDK
    2024-11-11
  • python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂功能

    python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂功能,播放wav格式的音頻,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • WSL2中安裝 cuDNN??的步驟詳解

    WSL2中安裝 cuDNN??的步驟詳解

    本文在WSL2環(huán)境下通過APT或手動(dòng)安裝cuDNN的步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • Python如何設(shè)置Excel單元格邊框

    Python如何設(shè)置Excel單元格邊框

    在數(shù)據(jù)驅(qū)動(dòng)的業(yè)務(wù)場景中,自動(dòng)化設(shè)置Excel單元格邊框成為提升數(shù)據(jù)處理效率的關(guān)鍵環(huán)節(jié),下面我們就來講講如何使用Python設(shè)置Excel工作簿中單元格的邊框吧
    2025-04-04
  • python字典和JSON格式的轉(zhuǎn)換方式

    python字典和JSON格式的轉(zhuǎn)換方式

    這篇文章主要介紹了python字典和JSON格式的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python創(chuàng)建文件和追加文件內(nèi)容實(shí)例

    Python創(chuàng)建文件和追加文件內(nèi)容實(shí)例

    這篇文章主要介紹了Python創(chuàng)建文件和追加文件內(nèi)容實(shí)例,本文同時(shí)給出了把標(biāo)準(zhǔn)輸出定向到文件實(shí)例,需要的朋友可以參考下
    2014-10-10
  • Python中Numpy包的安裝與使用方法簡明教程

    Python中Numpy包的安裝與使用方法簡明教程

    這篇文章主要介紹了Python中Numpy包的安裝與使用方法,結(jié)合簡單實(shí)例形式分析了Python使用pip命令在線與離線whl包安裝,以及使用numpy打印隨機(jī)數(shù)矩陣的操作技巧,需要的朋友可以參考下
    2018-07-07
  • python中圖片文件路徑格式如何使用

    python中圖片文件路徑格式如何使用

    這篇文章主要介紹了python中圖片文件路徑格式如何使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn)

    Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn)

    這篇文章主要介紹了Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論

丹寨县| 海原县| 句容市| 利津县| 望奎县| 湘乡市| 锦屏县| 长岭县| 铜山县| 呈贡县| 新野县| 宣汉县| 高碑店市| 札达县| 汤阴县| 定南县| 中山市| 太谷县| 仁布县| 陆河县| 屯昌县| 八宿县| 泽库县| 华安县| 永年县| 家居| 大厂| 怀仁县| 石棉县| 上高县| 喀什市| 长寿区| 隆尧县| 墨竹工卡县| 上蔡县| 五河县| 海淀区| 平和县| 祁连县| 太和县| 夏河县|