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
参数,但不能是“强制”
)