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