如何迭代两个数据帧,并在值匹配时执行特定操作



我有两个数据帧(df1,df2),我想遍历这两个数据框,并匹配这两个数字框中的键值。如果匹配,我想执行特定的操作。

df1:
ID  Name   lat/long
1   xyz    (23,12)
df2:
ID   Store     lat/long
1    pharmacy  (23,13)

我想迭代两个df,找到ID相同的两个坐标之间的距离。

示例如果df1[‘id’]==df2[‘id‘]:查找两个纬度/经度之间的距离

您在这个问题上没有提供太多信息,所以这可能是关闭的。

假设:

df1 =
ID Name  lat/long
0   1    A  (23, 12)
1   2    B  (24, 12)
2   3    C  (25, 12)
3  10    D  (30, 12)
df2 = 
ID Store  lat/long
0   1     a  (23, 13)
1   2     b  (24, 13)
2   3     c  (25, 13)
3  11     e  (30, 13)

并且:列lat/long包含tuples。如果不执行df1["lat/long"] = df1["lat/long"].map(eval),则对df2执行相同操作。

然后这个

from haversine import haversine
df3 = pd.merge(df1, df2, on="ID", how="inner")
df3["Distance"] = df3[["lat/long_x", "lat/long_y"]].apply(
lambda row: haversine(*row),
axis="columns"
)
df3 = df3.drop(columns=["lat/long_x", "lat/long_y"])

导致

ID Name Store    Distance
0   1    A     a  102.355413
1   2    B     b  101.581547
2   3    C     c  100.776739

相关内容

  • 没有找到相关文章

最新更新