pandas.DataFrame.applymap#

DataFrame.applymap(func, na_action=None, **kwargs)[源代码]#

以元素方式将函数应用于数据帧。

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

参数
func可调用

Python函数,从单个值返回单个值。

na_action{无,‘忽略’},默认为无

如果为‘Ignore’,则传播NaN值,而不将它们传递给函数。

1.2 新版功能.

**kwargs

要作为关键字参数传递到的其他关键字参数 func

1.3.0 新版功能.

退货
DataFrame

转换的DataFrame。

参见

DataFrame.apply

沿DataFrame的输入轴应用函数。

示例

>>> 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

与Series.map类似,可以忽略NA值:

>>> df_copy = df.copy()
>>> df_copy.iloc[0, 0] = pd.NA
>>> df_copy.applymap(lambda x: len(str(x)), na_action='ignore')
     0  1
0  NaN  4
1  5.0  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