pandas.DataFrame.map #

数据框。map ( func , na_action = None , ** kwargs ) [来源] #

按元素将函数应用于数据框。

版本 2.1.0 中的新增功能: DataFrame.applymap 已弃用并重命名为 DataFrame.map。

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

参数
可调用函数

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

na_action {无,'忽略'},默认无

如果“忽略”,则传播 NaN 值,而不将它们传递给 func。

**夸格

作为关键字参数传递给 func 的其他关键字参数。

返回
数据框

转换后的数据框。

也可以看看

DataFrame.apply

沿 DataFrame 的输入轴应用函数。

DataFrame.replace

将to_replace中给出的值替换为value

Series.map

在系列上按元素应用函数。

例子

>>> df = pd.DataFrame([[1, 2.12], [3.356, 4.567]])
>>> df
       0      1
0  1.000  2.120
1  3.356  4.567
>>> df.map(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.map(lambda x: len(str(x)), na_action='ignore')
     0  1
0  NaN  4
1  5.0  5

也可以将map与非 lambda函数的函数一起使用:

>>> df.map(round, ndigits=1)
     0    1
0  1.0  2.1
1  3.4  4.6

请注意,通常存在func的矢量化版本,它会快得多。您可以按元素对每个数字进行平方。

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

但在这种情况下最好避免使用地图。

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