予具有相對大的(〜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