首先,我创建了一个输入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()中的内容吗?
答案 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']
。