【发布时间】:2020-12-04 14:17:09
【问题描述】:
我有一个带有地理坐标列的 pandas 数据框,我正在使用 pymap3d 将位置转换为其他坐标系。我实现的一个典型功能是:
def append_enu(df, observerlla):
e = []
n = []
u = []
for index, row in df.iterrows():
tmpe, tmpn, tmpu = pm.geodetic2enu( row["lat_deg"], row["lon_deg"], row["alt_m"], *observerlla )
e.append(tmpe)
n.append(tmpn)
u.append(tmpu)
df["enu_e_m"] = e
df["enu_n_m"] = n
df["enu_u_m"] = u
return df
这可行,但我发现它非常慢。 (我的表有超过 700000 行,我正在为 3 个不同的坐标系添加转换。)是否有一种“更 Pythonic”的方式来正确利用 Pandas 允许数据框操作的方式?
【问题讨论】:
-
听起来像broadcasting 可能是您正在寻找的。它可以在任何 numpy/pandas 数组的列或行中快速应用函数