假设我有一个数据帧我可以在数据帧上的行之间执行操作吗?
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