我正在尝试使用pandas使用=' first'从几秒到几分钟重新采样船只跟踪数据。数据框称为hg1s。唯一ID称为MMSI。日期时间索引是TX_DTTM。这是一个数据样本:
TX_DTTM MMSI LAT LON NS
2013-10-01 00:00:02 367542760 29.660550 -94.974195 15
2013-10-01 00:00:04 367542760 29.660550 -94.974195 15
2013-10-01 00:00:07 367451120 29.614161 -94.954459 0
2013-10-01 00:00:15 367542760 29.660210 -94.974069 15
2013-10-01 00:00:13 367542760 29.660210 -94.974069 15
要重新采样的代码:
hg1s1min = hg1s.groupby('MMSI').resample('1Min', how='first')
输出的数据样本:
hg1s1min[20000:20004]
MMSI TX_DTTM NS LAT LON
367448060 2013-10-21 00:42:00 NaN NaN NaN
2013-10-21 00:43:00 NaN NaN NaN
2013-10-21 00:44:00 NaN NaN NaN
2013-10-21 00:45:00 NaN NaN NaN
可以安全地假设每分钟内有多个数据点,所以我不明白为什么这不能获得该方法的第一条记录。我查看了这个链接:Pandas Downsampling Issue,因为它看起来与我的问题类似。我试过传递label =' left'和标签='对',都没有用。
如何为每个MMSI每分钟返回第一条记录?
答案 0 :(得分:0)
事实证明,问题不在于方法,而在于我对数据的假设。大数据集是一个月,或44640分钟。虽然我的数据集中的每条记录都有相关值,但时间上并没有100%的重叠。在这种情况下,MMSI = 367448060出现在2013-10-17 23:24:31并再次出现在2013-10-29 20:57:32。在这两个数据点之间,没有要采样的数据,导致NaN,这是正确的。