为什么 pandas df.loc + lambda 不起作用?

Den*_*Ogr 4 python lambda dataframe pandas

我已经从 csv 文件创建了 pandas 框架。我想使用 lambda 选择行。但这不起作用。我使用这个 pandas 手册在此输入图像描述 例外: 在此输入图像描述

有什么问题吗?谢谢。

Max*_*axU 7

正如 @BrenBam 在评论中所说,此语法是在 0.18.1 中添加的,并且在以前的版本中不起作用。

按可调用选择:

.loc、.iloc、.ix 以及 [] 索引可以接受可调用作为索引器。可调用函数必须是具有一个参数(调用 Series、DataFrame 或 Panel)的函数,并且返回有效的索引输出。

示例(版本 0.18.1):

In [10]: df
Out[10]:
   a  b  c
0  1  4  2
1  2  2  4
2  3  4  0
3  0  2  3
4  3  0  4

In [11]: df.loc[lambda df: df.a == 3]
Out[11]:
   a  b  c
2  3  4  0
4  3  0  4
Run Code Online (Sandbox Code Playgroud)

对于 <= 0.18.0 的版本,您不能使用Selection by callable

这样做:

df.loc[df['Date'] == '2003-01-01 00:00:00', ['Date']]
Run Code Online (Sandbox Code Playgroud)

  • @DenisOgr:你使用什么版本的pandas?正如该页面上所说,该功能是在 0.18.1 中添加的。 (3认同)