自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Python 進行數(shù)據(jù)預(yù)處理的十個常用函數(shù)

開發(fā) 后端
本文介紹了使用 Python 進行數(shù)據(jù)預(yù)處理的十個常用函數(shù),通過這些函數(shù),我們可以高效地處理和準備數(shù)據(jù),為后續(xù)的數(shù)據(jù)分析或機器學(xué)習(xí)任務(wù)打下堅實的基礎(chǔ)。

在數(shù)據(jù)科學(xué)領(lǐng)域,數(shù)據(jù)預(yù)處理是一個非常重要的步驟,它能夠幫助我們清洗和準備數(shù)據(jù),以便更好地進行數(shù)據(jù)分析或機器學(xué)習(xí)建模。今天,我們就來聊聊使用 Python 進行數(shù)據(jù)預(yù)處理的 10 個常用函數(shù)。這些函數(shù)都是基于 Pandas 庫的,Pandas 是一個強大的數(shù)據(jù)處理庫,廣泛應(yīng)用于數(shù)據(jù)科學(xué)項目中。

1. read_csv:讀取 CSV 文件

首先,我們需要將數(shù)據(jù)加載到 Pandas DataFrame 中。read_csv 函數(shù)是最常用的讀取 CSV 文件的方法。

import pandas as pd

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

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id  name  age  city
0   1  John   28  New York
1   2  Jane   34  Los Angeles
2   3  Mike   42  Chicago
3   4  Alex   21  Houston
4   5  Emma   29  Phoenix

解釋:

  • pd.read_csv('data.csv'):讀取名為 data.csv 的文件。
  • df.head():顯示 DataFrame 的前 5 行數(shù)據(jù)。

2. info:查看數(shù)據(jù)信息

info 函數(shù)可以顯示 DataFrame 的基本信息,包括列名、非空值數(shù)量和數(shù)據(jù)類型。

# 查看數(shù)據(jù)信息
df.info()

輸出結(jié)果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   id      5 non-null      int64 
 1   name    5 non-null      object
 2   age     5 non-null      int64 
 3   city    5 non-null      object
dtypes: int64(2), object(2)
memory usage: 280.0+ bytes

解釋:

  • df.info():顯示 DataFrame 的基本信息,包括每列的數(shù)據(jù)類型和非空值數(shù)量。

3. describe:生成描述性統(tǒng)計信息

describe 函數(shù)可以生成數(shù)值型列的描述性統(tǒng)計信息,如均值、標準差、最小值、最大值等。

# 生成描述性統(tǒng)計信息
print(df.describe())

輸出結(jié)果:

             id        age
count  5.000000  5.000000
mean   3.000000  30.800000
std    1.581139   8.372603
min    1.000000  21.000000
25%    2.000000  24.500000
50%    3.000000  29.000000
75%    4.000000  34.000000
max    5.000000  42.000000

解釋:

  • df.describe():生成數(shù)值型列的描述性統(tǒng)計信息。

4. isnull 和 notnull:檢查缺失值

isnull 和 notnull 函數(shù)可以用來檢查 DataFrame 中是否存在缺失值。

# 檢查缺失值
print(df.isnull())

# 檢查非缺失值
print(df.notnull())

輸出結(jié)果:

    id   name    age   city
0  False  False  False  False
1  False  False  False  False
2  False  False  False  False
3  False  False  False  False
4  False  False  False  False

    id   name    age   city
0  True   True   True   True
1  True   True   True   True
2  True   True   True   True
3  True   True   True   True
4  True   True   True   True

解釋:

  • df.isnull():返回一個布爾 DataFrame,表示哪些單元格是缺失值。
  • df.notnull():返回一個布爾 DataFrame,表示哪些單元格是非缺失值。

5. fillna:填充缺失值

fillna 函數(shù)可以用來填充 DataFrame 中的缺失值。

# 填充缺失值
df['age'] = df['age'].fillna(df['age'].mean())

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id  name  age  city
0   1  John  28.0  New York
1   2  Jane  34.0  Los Angeles
2   3  Mike  42.0  Chicago
3   4  Alex  21.0  Houston
4   5  Emma  29.0  Phoenix

解釋:

  • df['age'].fillna(df['age'].mean()):用 age 列的均值填充缺失值。

6. dropna:刪除缺失值

dropna 函數(shù)可以用來刪除包含缺失值的行或列。

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

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id  name  age  city
0   1  John  28.0  New York
1   2  Jane  34.0  Los Angeles
2   3  Mike  42.0  Chicago
3   4  Alex  21.0  Houston
4   5  Emma  29.0  Phoenix

解釋:

  • df.dropna():刪除包含缺失值的行。

7. drop:刪除指定的行或列

drop 函數(shù)可以用來刪除指定的行或列。

# 刪除指定的列
df = df.drop(columns=['city'])

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id  name  age
0   1  John  28.0
1   2  Jane  34.0
2   3  Mike  42.0
3   4  Alex  21.0
4   5  Emma  29.0

解釋:

  • df.drop(columns=['city']):刪除 city 列。

8. rename:重命名列

rename 函數(shù)可以用來重命名 DataFrame 中的列。

# 重命名列
df = df.rename(columns={'name': 'full_name'})

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id full_name  age
0   1      John  28.0
1   2      Jane  34.0
2   3      Mike  42.0
3   4      Alex  21.0
4   5      Emma  29.0

解釋:

  • df.rename(columns={'name': 'full_name'}):將 name 列重命名為 full_name。

9. apply:應(yīng)用自定義函數(shù)

apply 函數(shù)可以用來對 DataFrame 的列應(yīng)用自定義函數(shù)。

# 定義一個自定義函數(shù)
def age_group(age):
    if age < 30:
        return 'Young'
    elif age < 50:
        return 'Middle-aged'
    else:
        return 'Senior'

# 應(yīng)用自定義函數(shù)
df['age_group'] = df['age'].apply(age_group)

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id full_name  age   age_group
0   1      John  28.0      Young
1   2      Jane  34.0  Middle-aged
2   3      Mike  42.0  Middle-aged
3   4      Alex  21.0      Young
4   5      Emma  29.0      Young

解釋:

  • df['age'].apply(age_group):對 age 列應(yīng)用 age_group 函數(shù),生成新的 age_group 列。

10. merge:合并 DataFrame

merge 函數(shù)可以用來合并兩個 DataFrame。

# 創(chuàng)建另一個 DataFrame
df2 = pd.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'salary': [50000, 60000, 70000, 45000, 55000]
})

# 合并 DataFrame
df = df.merge(df2, on='id')

# 顯示前 5 行數(shù)據(jù)
print(df.head())

輸出結(jié)果:

   id full_name  age   age_group  salary
0   1      John  28.0      Young   50000
1   2      Jane  34.0  Middle-aged   60000
2   3      Mike  42.0  Middle-aged   70000
3   4      Alex  21.0      Young   45000
4   5      Emma  29.0      Young   55000

解釋:

  • df.merge(df2, on='id'):根據(jù) id 列合并 df 和 df2。

實戰(zhàn)案例:處理電子商務(wù)數(shù)據(jù)

假設(shè)我們有一個電子商務(wù)數(shù)據(jù)集,包含用戶的購買記錄。我們需要進行以下操作:1. 讀取數(shù)據(jù)。2. 檢查并處理缺失值。3. 生成用戶購買次數(shù)和總金額的匯總信息。4. 將結(jié)果保存到新的 CSV 文件中。

import pandas as pd

# 1. 讀取數(shù)據(jù)
df = pd.read_csv('ecommerce_data.csv')

# 2. 檢查并處理缺失值
print(df.isnull().sum())
df = df.dropna()

# 3. 生成用戶購買次數(shù)和總金額的匯總信息
user_summary = df.groupby('user_id').agg({'order_id': 'count', 'amount': 'sum'}).reset_index()
user_summary.columns = ['user_id', 'purchase_count', 'total_amount']

# 4. 將結(jié)果保存到新的 CSV 文件中
user_summary.to_csv('user_summary.csv', index=False)

# 顯示前 5 行數(shù)據(jù)
print(user_summary.head())

輸出結(jié)果:

   user_id  purchase_count  total_amount
0        1              5        1500.0
1        2              3         900.0
2        3              7        2100.0
3        4              2         400.0
4        5              4        1200.0

總結(jié)

本文介紹了使用 Python 進行數(shù)據(jù)預(yù)處理的 10 個常用函數(shù),包括讀取 CSV 文件、查看數(shù)據(jù)信息、生成描述性統(tǒng)計信息、檢查和處理缺失值、刪除指定的行或列、重命名列、應(yīng)用自定義函數(shù)、合并 DataFrame 等。通過這些函數(shù),我們可以高效地處理和準備數(shù)據(jù),為后續(xù)的數(shù)據(jù)分析或機器學(xué)習(xí)任務(wù)打下堅實的基礎(chǔ)。

責(zé)任編輯:趙寧寧 來源: 手把手PythonAI編程
相關(guān)推薦

2021-07-17 22:41:53

Python數(shù)據(jù)技術(shù)

2024-06-26 13:11:40

2024-01-24 13:14:00

Python內(nèi)置函數(shù)工具

2022-08-27 15:03:43

Python損失函數(shù)算法

2024-07-18 15:08:27

2022-08-19 16:09:08

Python損失函數(shù)算法

2023-06-27 15:50:23

Python圖像處理

2024-04-28 10:00:24

Python數(shù)據(jù)可視化庫圖像處理庫

2024-05-06 11:12:22

圖像處理數(shù)學(xué)計算NumPy

2020-08-14 10:45:26

Pandas可視化數(shù)據(jù)預(yù)處理

2023-12-22 15:44:43

2009-09-03 10:08:27

JavaScript自

2024-05-13 11:43:39

Python數(shù)據(jù)分析CSV

2024-05-23 11:53:24

Python代碼異常處理

2025-04-16 08:10:00

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

2024-06-21 10:46:44

2022-05-12 08:12:51

PythonPip技巧

2023-03-24 16:41:36

Pandas技巧數(shù)據(jù)處理

2016-08-03 16:27:47

GitLinux開源

2022-03-02 11:45:16

Python函數(shù)數(shù)據(jù)分析
點贊
收藏

51CTO技術(shù)棧公眾號