对 pandas 数据帧每一行的坐标进行计算

Posted

技术标签:

【中文标题】对 pandas 数据帧每一行的坐标进行计算【英文标题】:Carry out computation for coordinates in each row of pandas dataframe 【发布时间】:2020-04-03 09:48:43 【问题描述】:

我有一个带有坐标(纬度(Lat)、经度(Lon))和地点名称的熊猫数据框(df)。 我想提取满足以下条件的特定条目

 acos(sin(1.3963) * sin(Lat) + cos(1.3963) * cos(Lat) * cos(Lon - (-0.6981))) <= 0.1570;

如何使用 df.loc 计算?

附上我的 df.head() 截图

【问题讨论】:

纬度和经度是否在不同的列中?如果您在问题中发布数据框会很有帮助 ***.com/help/minimal-reproducible-example? @RyoheiNamiki 我编辑了我的问题以包含数据框的一些条目。谢谢 我认为你应该更加明确。将结果分配给一个变量,然后您可以轻松地使用 loc 通过匹配所述变量来匹配行,使用 loc 速度很快,这样您就更明确了。 【参考方案1】:

试试这个

df[np.arccos(np.sin(1.3963) * np.sin(df["lat"]) + np.cos(1.3963) * np.cos(df["lat"]) * np.cos(df["long"] - (-0.6981))) <= 0.1570]

【讨论】:

以上是关于对 pandas 数据帧每一行的坐标进行计算的主要内容,如果未能解决你的问题,请参考以下文章

python的科学计算库都有哪些

使用不同的时间间隔合并并填充Pandas中的两个数据帧

Pandas - 使用 itertuples 创建列

如何找到数据帧每一行的最小值索引?

panda groupby ID,并计算相对于坐标中心的半径

快速半正弦逼近(Python/Pandas)