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