假設我有一個數據幀我可以在數據幀上的行之間執行操作嗎?
ID1 ID2 x y time
0 0 1 34.337735 -76.3319716667 1446797582
1 0 1 34.3841816667 -76.2837666667 1446796183
2 0 2 34.49157 -76.1661133333 1446792969
3 0 3 34.5275266667 -76.1151866667 1446791765
4 0 3 34.5624816667 -76.0633883333 1446790559
我想是捕獲每個成員移動的距離,由ID1,ID2
對唯一標識。
有無論如何我可以對數據框執行行操作?我最初的想法是使用df.as_matrix()
將數據幀轉換爲矩陣,挑出唯一的ID,即矩陣的計算距離。
這看起來效率很低。有沒有更好的方式,我可以用數據框做到這一點?
是否存在多行數據爲每個ID1,ID2對?換句話說,x和y隨時間而變化? – paisanco
是的,這是正確的。對於任意ID1,ID2對,至少有一行。如果有多個,那麼x,y會隨着時間而改變。 – user3600497
可能是這樣做的複雜方式,但你可以'groupby' ID1和ID2;然後*遍歷組*壓縮(使用'zip')''''和'y'到一個'xy'列,其中的值是點(x,y)。然後,將這個'xy'列移動1(使用'shift'),得到一個新的列'xyshift'。然後在這個「xyshift」列中的行軸上應用差分函數;並最終將它迭代地合併到你的數據框中或組成一個新的 – vmg