根据特定数据帧中的数据项插值

2024-09-25 00:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我有从鹿特丹到汉堡的几次旅行的AIS数据。航线被分成6个扇区,扇区边界是为航线预先定义的,我需要知道一艘船何时何地进入下一个扇区。我尝试只使用扇区内的最后一条记录,但数据的分辨率不够高。所以我想根据扇区边界的纬度插值时间和经度。在

在下图中,您可以看到我为这次旅行确定的边界。过境的经度总是正好在边界线上。我需要确定的是船穿过这条线的纬度。在

Map of my borders

我的数据框如下所示:

       TripID  time  Latitude Longitude  SectorID
0      42       7    52.9     4.4        1
1      42       8    53.0     4.6        1
2      42       9    53.0     4.7        1
3      42      10    53.1     4.9        2
4       5       9    53.0     4.5        1
5       5      10    53.0     4.7        1
6       5      11    53.2     5.0        2
7       5      12    53.3     5.2        2

其中扇区1和扇区2之间的边界是在经度4.8处预先定义的,所以我想为每次旅行和扇区边界插值经度为4.8的纬度和时间。我猜一个好的解决方案应该包括df.groupby(['TripID', 'SectorID'])。在

我尝试为每个行程和扇区添加一个条目,该条目只包含扇区边界的纬度,然后使用interpolate,但是添加这些条目需要我大约一个小时的时间,并且插入缺失的值会立即崩溃。在

我要找的结果应该是这样的:

^{pr2}$

我也会很高兴,并且能够得到这样的结果:

 TripID  SectorID  leave_lat  leave_lon  leave_time
 42      1         53.05      4.8        9.5
 5       1         53.06      4.8        10.3

如果我对问题的描述不太清楚,请你问。在


Tags: 数据定义time时间条目边界插值扇区
2条回答

既然熊猫队的工作人员没注意到这个好问题,我给你一个解决办法,但要注意一些问题。以下是输入示例,我使用了:

TripID  time  Latitude Longitude  
42       7    52.9     4.4        
42       8    53.0     4.6        
42       9    53.0     4.7 * missing value
42      10    53.1     4.9 
42      11    53.2     4.9         
42      12    53.3     5.3 * missing value
42      15    53.7     5.6    
5        9    53.0     4.5        
5       10    53.0     4.7  * missing value
5       11    53.2     5.0       
5       12    53.4     5.2        
5       14    53.6     5.3  * missing value
5       17    53.4     5.5        
5       18    53.3     5.7  
34      19    53.0     4.5  
34      20    53.0     4.7          
34      24    53.9     4.8  ** value already exists
34      25    53.8     4.9        
34      27    53.8     5.3        
34      28    53.8     5.3  * missing value
34      31    53.7     5.6        
34      32    53.6     5.7 

此代码:

^{pr2}$

生成以下输出:

^{3}$

现在是注意事项。我不知道,怎么把缺行补上。我要问一个问题,怎么做。如果我得到答案,我会在这里更新我的答案。在此之前,副作用是在每个TripID中为Longitude排序,并且假设{}不会减少,实际上可能不是这样。在

我用不同的方式解决了这个问题。因为这为我解决了问题,但不是我所要求的确切解决方案,我将接受t先生的回答。为了完整起见,我发布此内容,因此我的解决方案如下:

从我的问题中的数据框df开始

        TripID  time  Latitude Longitude  SectorID
0      42       7    52.9     4.4        1
1      42       8    53.0     4.6        1
2      42       9    53.0     4.7        1
3      42      10    53.1     4.9        2
4       5       9    53.0     4.5        1
5       5      10    53.0     4.7        1
6       5      11    53.2     5.0        2
7       5      12    53.3     5.2        2

我用了这个密码

^{pr2}$

结果是这样的

^{3}$

我希望这有助于那些实际解决方案无法解决问题的人。在

相关问题 更多 >