【发布时间】:2017-05-14 13:52:22
【问题描述】:
我有一个 Pandas DataFrame,其中包含两组坐标(lat1、lon1、lat2、lon2)。我有一个使用这些坐标计算距离的函数。但是数据框中的某些行无效。我想仅将我的函数应用于有效行并将函数的结果保存到“dist”列(该列已存在于数据框中)。我想要这样的 SQL:
UPDATE dataframe
SET dist=calculate_dist(lat1, lon1, lat2, lon2)
WHERE lat1 IS NOT NULL AND lat2 IS NOT NULL AND user_id>100;
我怎样才能做到这一点?
我尝试使用df = df.apply(calculate_dist, axis=1),但使用这种方法我需要处理所有行,不仅是与我的条件匹配的行,而且我需要在 calculate_dist 函数中有一个忽略无效行的 if 语句。有没有更好的办法?
我知道 StackOverflow 上已经出现了类似的问题,但我找不到任何同时使用函数和条件选择行的问题。
【问题讨论】:
标签: python python-3.x pandas indexing mask