Python 将lambda函数传递给DataFrame.apply-what';这里发生了什么事?

Python 将lambda函数传递给DataFrame.apply-what';这里发生了什么事?,python,pandas,Python,Pandas,我的问题是关于线路的 df.apply(lambda x: pd.to_numeric(x, errors='coerce')) 我确实理解此语句将数据帧列转换为整数值,但无法理解lambda函数或errors='concurve'部分的用法。apply通过对其应用函数来处理行序列或列序列lambda只是定义了一个匿名函数 为了可读性,您可以使用更好的变量名定义一个常规函数。考虑下面的演示: >>> df = pd.DataFrame([['1', '2'], ['3', '

我的问题是关于线路的

df.apply(lambda x: pd.to_numeric(x, errors='coerce'))

我确实理解此语句将数据帧列转换为整数值,但无法理解
lambda
函数或
errors='concurve'
部分的用法。

apply
通过对其应用函数来处理行序列或列序列
lambda
只是定义了一个匿名函数

为了可读性,您可以使用更好的变量名定义一个常规函数。考虑下面的演示:

>>> df = pd.DataFrame([['1', '2'], ['3', 'foo']])
>>> df.dtypes
>>> 
0    object
1    object
dtype: object
我们有一个充满字符串的数据框,我们想把它变成数字。不可转换的值应设置为
NaN
(这就是
errors='concurve'
的作用)

如您所见,使用
lambda
只是定义函数的一种简单方法。如果您不喜欢它,您可以编写一个普通函数,它也可以这样做,并且可能更可读

在这种情况下,定义自己的函数有点毫无意义,因为您可以编写:

>>> df.apply(pd.to_numeric, errors='coerce')
>>> 
   0    1
0  1  2.0
1  3  NaN

apply
通过对行序列或列序列应用函数来处理该序列
lambda
只是定义了一个匿名函数

为了可读性,您可以使用更好的变量名定义一个常规函数。考虑下面的演示:

>>> df = pd.DataFrame([['1', '2'], ['3', 'foo']])
>>> df.dtypes
>>> 
0    object
1    object
dtype: object
我们有一个充满字符串的数据框,我们想把它变成数字。不可转换的值应设置为
NaN
(这就是
errors='concurve'
的作用)

如您所见,使用
lambda
只是定义函数的一种简单方法。如果您不喜欢它,您可以编写一个普通函数,它也可以这样做,并且可能更可读

在这种情况下,定义自己的函数有点毫无意义,因为您可以编写:

>>> df.apply(pd.to_numeric, errors='coerce')
>>> 
   0    1
0  1  2.0
1  3  NaN

要理解错误部分,请参阅此项;要理解错误部分,请参阅此项(特别是,
df.astype
有一个
errors
参数,但不能是
“强制”
)(特别是,
df.astype
有一个
errors
参数,但不能是
“强制”