我正在使用原始数据文件进行车辆监控。到目前为止,在问题浮出水面之前已经做了一些清理工作。由于我的数据不一致,这给我带来了一些问题。数据包括“模型(v,w,x,y和z),时间戳,纬度,经度和模式(0,2,4,8)”。
此过程的目标是通过清理数据来计算距离和持续时间
我已经成功地使用关于Model和Mode的时间戳计算了持续时间。我还成功地完成了使用坐标和半正弦公式计算行之间的距离。问题来了:
因此,只有在Lat和Long都存在并且格式正确(例如1.035436,103.234623)的情况下,我才能成功地计算行之间的距离。接收的数据可以是空字段,这会导致错误。此错误已通过识别空字段并删除行来解决(因为没有long,数据就没有用处)
mydataset = mydataset[mydataset['Mode'].notnull()] #for removing empty mode
mydataset = mydataset[mydataset['Latitude'].notnull()] #for removing empty latitude
但是有lat被接收为0.000000000,0.00000000,我想删除这个数字中lat行。有些方法已经尝试过了,但都不起作用。我尝试识别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
发布于 2018-07-31 17:49:29
我不确定,如果我没理解错的话,你需要这样的东西吗?
示例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
https://stackoverflow.com/questions/51608952
复制相似问题