予具有相对大的(〜300 MB)组地理定位数据,其中,所述格式是插值单值
Timestamp, id, type, x, y
用下面的数据类型:
In[7]: df.dtypes
Out[7]:
Timestamp datetime64[ns]
id int64
type object
X int64
Y int64
dtype: object
每个ID对应于特定的用户,并且每个人在一天中记录数百个点。
我想创建一个图表,显示每个人在某个特定的时间。所以我需要每个ID 1点。但是,数据有点稀疏,并且不太可能存在与第二个数据点精确相关的数据点。我想通过在最接近的两点之间进行插值来近似。
在数据点之间,我假设人们线性移动,所以如果我们知道8点31分10秒和8点31分50秒的位置,那么在8点31分30秒,他们应该完全处于两个位置,并在8时31分十一秒,他们应该是点(使内插如下所述:Pandas data frame: resample with linear interpolation)之间的方式1/40
我想的基本过程是:
- 通过每个ID循环:
- 获得该ID的过滤器数据
- 在时间之前得到最后的位置(例如,在8:31:11之前的最后记录的位置,或者任何时间被使用)
- 获得第一个位置(例如在8:31:11之后的第一个记录位置,或者任何时间被使用)
- 插值到数字出它们在该第二
- 添加位置,其中列出每个ID的位置
- 情节名单
我知道我可以遍历每个ID与
for name, group in df.groupby('id'):
和绘图不是问题,但我不确定其余的。
经过一番搜索,我还没有找到任何好办法来做到这一点从每个组的单个值。其他答案建议使用resample和内插函数,但是对于我所拥有的数据量来说,这会花费太长时间,并且会看到很多不必要的计算,因为我只需要一个点。
我增加了更多的问题,希望能够更好地解释它。基本上,我想在某个特定时间(例如上午10点30分14秒)为每个人点1分,但不太可能存在与那段时间完全一致的数据。所以我想我需要在10:30:14之前和10:30:14之后获取数据并进行插值。尽管每个人的数据都是一整天。 – Jezzamon