【问题标题】:Why does Trackpy give me an error when I try to compute the overall drift speed?当我尝试计算整体漂移速度时,为什么 Trackpy 会给我一个错误?
【发布时间】:2019-10-31 15:39:47
【问题描述】:

我正在浏览 Trackpy 演练 (http://soft-matter.github.io/trackpy/v0.3.0/tutorial/walkthrough.html),但使用的是我自己的图片。当我开始计算整体漂移速度时,我得到了这个错误,我不知道这是什么意思:drift error

我没有大量的编码经验,所以我什至不确定如何查看源代码来弄清楚发生了什么。

【问题讨论】:

  • 请提供一些您尝试过的代码或遇到的错误。还可以添加更多标签,以便更多受众可以看到问题

标签: trackpy


【解决方案1】:

您的屏幕截图显示了错误的回溯,即您调用了一个函数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

“frame”这个词是两列的标题,混淆了排序算法。正如错误消息所说,按帧对表格进行排序是不明确的。

解决方案

索引(最左边)列在这里不需要名称,所以用

删除它
t2.index.name = None

然后再试一次。检查您是否拥有最新的 Trackpy 和 Pandas 版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 2021-05-26
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多