为什么我的代码有效(用函数过滤数据框)?

时间:2017-12-01 13:35:28

标签: python pandas

首先,我创建了一个输入lat Lon的函数,以便过滤未进入特定区域的船只。

check_devaiation_notInZone(LAT, LON)

如果船只未进入特定区域,则需要两个输入并返回True。

其次,我在很多船上获得了数据,其中Lat在一个标题中,而Lon在另一个标题中以CSV格式存在。因此,我需要将两列中的数据放入函数中,并创建另一列来存储函数的输出。

我看了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()中的内容吗?

1 个答案:

答案 0 :(得分:1)

lambda函数就像普通函数一样,但它没有名称,只能在定义它的地方使用。

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

与:

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

因此,在应用中,您只需使用参数check_devaiation_notInZone调用另一个函数row['Latitude'], row['Longitude']