我正在使用原始数据文件进行车辆监控。 到目前为止,在问题表面之前已经进行了一些清理。由于我的数据不一致,因此给我带来了一些问题。数据包括“模型(v,w,x,y和z),时间戳,纬度,经度和模式(0,2,4,8)”。
此过程的目的是在清理数据的同时计算距离和持续时间
我已经成功使用Model和Mode的时间戳完成了持续时间的计算。我还成功完成了使用坐标和Haversine公式计算行之间的距离的操作。这里出现问题:
因此,只有同时存在纬度和经度且格式正确(例如1.035436、103.234623),我才能成功计算行之间的距离。收到的数据可能为空字段,这会导致错误。通过识别空白字段并删除行来解决此错误(由于没有很长时间,因此数据无用)
mydataset = mydataset[mydataset['Mode'].notnull()] #for removing empty mode
mydataset = mydataset[mydataset['Latitude'].notnull()] #for removing empty latitude
但是有lat long收到为0.00000000,0.00000000,我想删除此数字中有lat long的行。已经尝试了一些方法,但是不起作用。我试过确定0并使用以下方法将其删除:
mydataset = mydataset[(mydataset[['Latitude','Longitude']] != 0).all(axis=1)]
和
mydataset = mydataset[(mydataset.Latitude != 0).any()]
由于机密数据和代码,我无法提供太多信息,但想知道为什么上述两种方法不起作用,并且如果可能的话,有人可以建议我如何解决此类问题吗?
谢谢!非常感谢,并感谢您的宝贵时间!
一些伪造数据如下所示:
,Model,Timestamp,Longitude,Latitude,Mode
0,x,1970-01-19 01:29:17.058,103.235623,1.045436,0
1,x,1970-01-19 01:29:22.058,0.00000000,0.00000000,0 #Would like to remove this row
2,x,1970-01-19 01:29:27.058,103.234813,1.038436,2
3,x,1970-01-19 01:29:32.058,103.235623,1.039436,2
4,x,1970-01-19 01:29:38.058,103.234123,1.036436,0
5,x,1970-01-19 01:29:38.058,,,0 #removed via the code above
答案 0 :(得分:0)
我不确定,如果我理解正确,您是否需要类似的东西?
样本df
Lat,Long
55.6,22.06
0.00000000,0.00000000
56.056,22.10
df1 = df[df[['Lat','Long']] != 0].dropna(how='any').reset_index(drop= True)
print(df1)
Lat Long
0 55.600 22.06
1 56.056 22.10