成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 Python 進行數據預處理的十個常用函數

開發 后端
本文介紹了使用 Python 進行數據預處理的十個常用函數,通過這些函數,我們可以高效地處理和準備數據,為后續的數據分析或機器學習任務打下堅實的基礎。

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

1. read_csv:讀取 CSV 文件

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

import pandas as pd

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

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

輸出結果:

   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 行數據。

2. info:查看數據信息

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

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

輸出結果:

<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 的基本信息,包括每列的數據類型和非空值數量。

3. describe:生成描述性統計信息

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

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

輸出結果:

             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():生成數值型列的描述性統計信息。

4. isnull 和 notnull:檢查缺失值

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

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

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

輸出結果:

    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 函數可以用來填充 DataFrame 中的缺失值。

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

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

輸出結果:

   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 函數可以用來刪除包含缺失值的行或列。

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

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

輸出結果:

   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 函數可以用來刪除指定的行或列。

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

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

輸出結果:

   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 函數可以用來重命名 DataFrame 中的列。

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

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

輸出結果:

   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:應用自定義函數

apply 函數可以用來對 DataFrame 的列應用自定義函數。

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

# 應用自定義函數
df['age_group'] = df['age'].apply(age_group)

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

輸出結果:

   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 列應用 age_group 函數,生成新的 age_group 列。

10. merge:合并 DataFrame

merge 函數可以用來合并兩個 DataFrame。

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

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

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

輸出結果:

   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'):根據 id 列合并 df 和 df2。

實戰案例:處理電子商務數據

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

import pandas as pd

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

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

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

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

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

輸出結果:

   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

總結

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

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2021-07-17 22:41:53

Python數據技術

2024-06-26 13:11:40

2024-01-24 13:14:00

Python內置函數工具

2022-08-27 15:03:43

Python損失函數算法

2024-07-18 15:08:27

2022-08-19 16:09:08

Python損失函數算法

2023-06-27 15:50:23

Python圖像處理

2024-04-28 10:00:24

Python數據可視化庫圖像處理庫

2024-05-06 11:12:22

圖像處理數學計算NumPy

2023-12-22 15:44:43

2020-08-14 10:45:26

Pandas可視化數據預處理

2024-05-13 11:43:39

Python數據分析CSV

2009-09-03 10:08:27

JavaScript自

2024-05-23 11:53:24

Python代碼異常處理

2022-05-12 08:12:51

PythonPip技巧

2025-04-16 08:10:00

PandasPython數據分析

2024-06-21 10:46:44

2023-03-24 16:41:36

Pandas技巧數據處理

2016-08-03 16:27:47

GitLinux開源

2023-10-16 07:55:15

JavaScript對象技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本特黄a级高清免费大片 特黄色一级毛片 | 国产区精品在线观看 | 一区二区三区影院 | 久久免费精品视频 | 在线观看黄色 | a视频在线观看 | 国产精品日韩一区 | 日本三级电影免费 | 久久成人一区 | 久久91| 欧美激情精品久久久久久变态 | 亚洲国产一区视频 | 美女张开腿露出尿口 | 中文字幕视频网 | 成年视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 97av视频在线 | 亚洲欧美中文日韩在线v日本 | 国产一区二区三区在线视频 | 日韩成人精品在线观看 | 激情综合五月天 | 啪啪精品 | 欧美一级二级视频 | 免费国产一区 | 亚洲成人免费在线 | 国产成人精品999在线观看 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 亚洲最大的成人网 | 天天成人综合网 | 欧美精品二区 | 福利社午夜影院 | 欧美精品被 | 成人免费区一区二区三区 | 国产精品久久久久久久久久 | 国产区一区二区三区 | 中文字幕免费观看 | 国产精品久久久久久久久免费樱桃 | 毛片在线看片 | 波多野结衣二区 | 一级黄色毛片免费 | 日韩有码一区 |