首页 >后端开发 >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