首页 >后端开发 >Python教程 >何时使用 Pandas `map`、`applymap` 或 `apply`?

何时使用 Pandas `map`、`applymap` 或 `apply`?

Linda Hamilton
Linda Hamilton原创
2024-12-07 08:36:16839浏览

When to Use Pandas `map`, `applymap`, or `apply`?

在 Pandas 中选择 map、applymap 和 apply

使用 Pandas DataFrame 时,通常需要对数据应用函数以各种方式。向量化常用的三种方法是map、applymap和apply。每个都有其独特的用途和应用。

Map

map 是特定于 Series 对象的方法,它将函数应用于 Series 中的每个元素。它需要一个接受单个值作为输入并返回单个值的函数。

示例:

import pandas as pd

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

# Apply a function to each element
def square(x):
    return x**2

# Apply the function to the series using map
squared_series = series.map(square)

print(squared_series)

输出:

0    1
1    4
2    9
3   16
4   25
dtype: int64

Applymap

applymap 应用函数作用于 DataFrame 的每个元素,按元素执行操作。与 map 一样,它需要一个接受单个值作为输入并返回单个值的函数。

示例:

# Create a DataFrame
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# Apply a function to each element of the DataFrame
def format_number(x):
    return "{:.2f}".format(x)

# Apply the function to the DataFrame using applymap
formatted_df = df.applymap(format_number)

print(formatted_df)

输出:

   a  b
0  1.00  4.00
1  2.00  5.00
2  3.00  6.00

申请

申请适用DataFrame 的每一行或每一列的函数,具体取决于轴参数。它比 map 和 applymap 更通用,可以处理需要传递多个值作为输入的函数。

示例:

# Apply a function to each row of the DataFrame
def get_max_min_diff(row):
    return row.max() - row.min()

max_min_diff = df.apply(get_max_min_diff, axis=1)

print(max_min_diff)

输出:

0    3.00
1    3.00
2    3.00
dtype: float64

用法摘要

  • map:按元素函数应用到Series
  • applymap:按元素函数应用到DataFrame
  • 应用:按行/列函数应用到 DataFrame,具有灵活的输入/输出处理

以上是何时使用 Pandas `map`、`applymap` 或 `apply`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn