首頁 >後端開發 >Python教學 >Pandas 向量化中的「map」、「applymap」和「apply」有何不同?

Pandas 向量化中的「map」、「applymap」和「apply」有何不同?

Patricia Arquette
Patricia Arquette原創
2024-12-07 03:09:10720瀏覽

How Do `map`, `applymap`, and `apply` Differ in Pandas Vectorization?

Pandas 中的向量化方法:map、applymap 和 apply

Pandas 提供了將函數應用於資料結構的便捷方法。 map、applymap 和 apply 是有助於資料運算和轉換的三種方法。每種方法都有特定的目的,其使用取決於所需的結果。

map

map 在將函數以元素應用於系列時使用。它傳回一個具有轉換後的值的新系列。

範例:

import pandas as pd

series = pd.Series([1, 2, 3, 4, 5])

def square(x):
    return x ** 2

squared_series = series.map(square)

print(squared_series)
# Output:
# 0    1
# 1    4
# 2    9
# 3   16
# 4   25
# dtype: int64

applymap

applymap 應用函數逐元素到 DataFrame。它使用轉換後的值來建立一個新的 DataFrame。

範例:

df = pd.DataFrame({
    'name': ['John', 'Jane', 'Tom'],
    'age': [20, 25, 30]
})

def capitalize(x):
    return x.capitalize()

df['name'] = df['name'].applymap(capitalize)

print(df)
# Output:
#    name  age
# 0  John   20
# 1  Jane   25
# 2  Tom    30

apply

apply 允許更多透過對DataFrame 逐行或逐列應用函數逐行或逐列應用函數逐行來進行複雜的轉換。它傳回帶有結果的 Series 或 DataFrame。

範例:

def get_age_group(age):
    if age <= 20:
        return 'Young'
    elif age <= 40:
        return 'Middle-aged'
    else:
        return 'Senior'

df['age_group'] = df['age'].apply(get_age_group)

print(df)
# Output:
#   name  age age_group
# 0  John   20     Young
# 1  Jane   25  Middle-aged
# 2  Tom    30  Middle-aged

以上是Pandas 向量化中的「map」、「applymap」和「apply」有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn