在数据帧中分组然后排序(索引问题)

2024-04-26 13:56:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它有四列数据。第一帧是视频的帧数,第二帧和第三帧是粒子在图像中的x和y位置,第四帧是分配给粒子以分别跟踪它们的编号(下面的示例):

from pandas import DataFrame

Data = {'frame':  [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3],
        'x': ['First value', 'Second value',...],
        'y':  ['First value', 'Second value',...],
        'particle':  [0, 1, 2, 0, 1, 2, 0, 1, 2]
        }

df = DataFrame(Data, columns = ['frame', 'x', 'y', 'particle'])

我的dataframe还包含一个与frame列具有相同值的索引。你知道吗

我的目标是首先按粒子分组,然后按粒子组中的帧数排序。网上有很多这样的例子,但是索引似乎引起了一些问题。我试过这个:

grouped_tracks1 = tracks1.sort_values('frame').groupby('particle').reset_index()

但会返回以下错误:

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

我也试过按索引排序

grouped_tracks1 = tracks1.sort_index().groupby('particle').reset_index()

但是,这也会产生一个错误,我更倾向于按帧排序,完全忽略索引。在排序和分组的最后,我希望有一个按粒子分组并在这些组中排序的数据帧。你知道吗

关于如何解决这个问题有什么建议吗?谢谢!你知道吗


Tags: 数据dataframedataindex排序value粒子sort