为什么我的代码工作(用函数过滤数据帧)?

2024-06-15 05:05:50 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我创建了一个输入lat Lon的函数来过滤没有进入特定区域的船只

check_devaiation_notInZone(LAT, LON)

它需要两个输入,如果船舶没有进入特定区域,则返回True

其次,我得到了许多船上的数据,其中一个标题是Lat,另一个标题是CSV格式的Lon。因此,我需要将两列中的数据带到函数中,并创建另一列来存储函数的输出

在我看过Pandas: How to use apply function to multiple columns之后。我找到了解决办法df1['deviation'] = df1.apply(lambda row: check_devaiation_notInZone(row['Latitude'], row['Longitude']), axis = 1)

但我不知道它为什么起作用。有人能解释一下apply()中的内容吗


Tags: to数据函数区域标题checkrowdf1
1条回答
网友
1楼 · 发布于 2024-06-15 05:05:50

lambda函数与普通函数类似,但它没有名称,只能在定义它的地方使用

lambda row: check_devaiation_notInZone(row['Latitude'], row['Longitude'])

同:

def anyname(row):
    return check_devaiation_notInZone(row['Latitude'], row['Longitude'])

所以在apply中,只需调用另一个带有参数row['Latitude'], row['Longitude']的函数check_devaiation_notInZone

相关问题 更多 >