为什么在尝试计算总体漂移速度时Trackpy会给我一个错误?

时间:2019-10-31 15:39:47

标签: trackpy

我正在使用Trackpy演练(http://soft-matter.github.io/trackpy/v0.3.0/tutorial/walkthrough.html),但使用的是我自己的照片。在计算总漂移速度时,会出现此错误,但我不知道这是什么意思:drift error

我没有大量的编码经验,所以我什至不确定如何查看源代码以了解正在发生的事情。

1 个答案:

答案 0 :(得分:0)

您的屏幕快照显示了错误的回溯,即您调用了一个函数tp.compute_drift(),但是此函数调用了另一个函数pandas_sort(),该函数调用了另一个函数,依此类推,直到raise ValueError(msg)被称为中断链。最后一行是实际的错误消息:

ValueError: 'frame' is both an index level and a column label, which is ambiguous.

要理解它,您必须知道Trackpy将数据存储在pandas库的DataFrame对象中。您要从中提取漂移运动的跟踪数据存储在这样的对象t2中。如果打印t2,则可能看起来像这样:

                 y            x      mass  ...        ep  frame  particle
frame                                      ...                           
0        46.695711  3043.562648  3.881068  ...  0.007859      0         0
3979   3041.628299  1460.402493  1.787834  ...  0.037744      0         1
3978   3041.344043  4041.002275  4.609833  ...  0.010825      0         2

“框架”一词是两列的标题,这混淆了排序算法。如错误消息所述,按表对表进行排序是不明确的。

解决方案

索引(最左侧)列在这里不需要名称,因此请使用

删除它
t2.index.name = None

,然后重试。检查是否具有最新的Trackpy和Pandas版本。