Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.applymap方法的使用。

DataFrame.applymap(func)                                       [source]

将函数应用于Dataframe元素。

此方法应用一个函数,该函数接受并向DataFrame的每个元素返回一个标量。

参数:

func : 可调用的

函数,从一个值返回一个值。

返回:

DataFrame

改变的DataFrame.

Notes

在当前的实现中,applymap在第一列/行上两次调用func,以决定它的代码路径是快还是慢。如果func有副作用,这可能会导致意想不到的行为,因为它们将对第一列/行起两次作用。

例子

>>> df = pd.DataFrame([[1, 2.12], [3.356, 4.567]])
>>> df
0 1
0 1.000 2.120
1 3.356 4.567
>>> df.applymap(lambda x: len(str(x)))
0 1
0 3 4
1 5 5

注意,通常存在一个向量化的func版本,这将快得多。你可以对每个数的元素平方

>>> df.applymap(lambda x: x**2)
0 1
0 1.000000 4.494400
1 11.262736 20.857489

但在这种情况下,最好避免使用applymap

>>> df ** 2
0 1
0 1.000000 4.494400
1 11.262736 20.857489