为了账号安全,请及时绑定邮箱和手机立即绑定

如何在熊猫中填写缺失的 GPS 数据?

如何在熊猫中填写缺失的 GPS 数据?

子衿沉夜 2022-06-14 16:52:34
我有一个看起来像这样的数据框+-----+------------+-------------+-------------------------+----+----------+----------+|     | Actual_Lat | Actual_Long |          Time           | ID | Cal_long | Cal_lat  |+-----+------------+-------------+-------------------------+----+----------+----------+|   0 | 63.433376  | 10.397068   | 2019-09-30 04:48:13.540 | 11 | 10.39729 | 63.43338 ||   1 | 63.433301  | 10.395846   | 2019-09-30 04:48:18.470 | 11 | 10.39731 | 63.43326 ||   2 | 63.433259  | 10.394543   | 2019-09-30 04:48:23.450 | 11 | 10.39576 | 63.43323 ||   3 | 63.433258  | 10.394244   | 2019-09-30 04:48:29.500 | 11 | 10.39555 | 63.43436 ||   4 | 63.433258  | 10.394215   | 2019-09-30 04:48:35.683 | 11 | 10.39505 | 63.43427 || ... | ...        | ...         | ...                     | ...|      ... |      ... ||  70 | NaN        | NaN         | NaT                     | NaN| 10.35826 | 63.43149 ||  71 | NaN        | NaN         | NaT                     | NaN| 10.35809 | 63.43155 ||  72 | NaN        | NaN         | NaT                     | NaN| 10.35772 | 63.43163 ||  73 | NaN        | NaN         | NaT                     | NaN| 10.35646 | 63.43182 ||  74 | NaN        | NaN         | NaT                     | NaN| 10.35536 | 63.43196 |+-----+------------+-------------+-------------------------+----------+----------+----------+Actual_lat并Actual_long包含从 GPS 设备获得的数据的 GPS 坐标。Cal_lat是从 获得的cal_latGPS 坐标OSRM's API。如您所见,实际坐标中缺少大量数据。我正在寻找一个数据集,这样当我取实际_lat 与 cal_lat 的差异时,它应该为零或至少接近于零。我试图用目的地纬度和经度填充这些缺失值,但这会导致巨大的差异。我的问题是如何使用 python/pandas 填充这些值,以便当车辆遵循 OSRM 估计路径时,实际纬度/经度和估计经度/经度之间的差异应该为零或接近零。我是 GIS 数据集的新手,不知道如何处理它们。
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

IIUC,你需要这样的东西:


我从 df 中取出列作为列表。


div = float(len(cal_lat)) / float(len(actual_lat))


new_l = []

for i in range(len(cal_lat)):

    new_l.append(actual_lat[int(i/div)])


print(new_l)

len(new_l)


做,与经度列相同。由于这些是 GPS 点,因此您可以在计算差异时调整您的模型以达到 3 位数的精度。因此,请记住这一点,从 Actual_lat 和 lng 开始,如果您的下一个值与第一个值相同,则差异不会太大。希望我有道理,你有你的解决方案。


查看完整回答
反对 回复 2022-06-14
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

你需要pandas.DataFrame.where

假设您的数据框是df,那么您可以执行以下操作:

df.Actual_Lat = df.Actual_Lat.where(~df.Actual_Lat.isna(), df.Cal_lat)


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信