我有一个Pandas数据框,包含音轨、得分和其他列。
我想按“音轨”对其进行分组,然后基于“得分”的最大值对这些组进行排序。
示例数据框:
tracks score
20 2.2
20 1.5
25 3.5
24 1.2
24 5.5
期望输出(我想比较每个组的最高值,并将所有组按从高到低排序,但我不想丢失任何其他数据 - 意味着我想显示所有行):
tracks score
24 5.5
1.2
25 3.5
20 2.2
1.5
目前,我得到了以下输出(我的分数已经排序,但在按曲目分组之后,我的曲目是根据曲目编号排序的):
tracks score
20 2.2
1.5
24 5.5
4.2
25 3.5
我的做法如下: 1. 我已经按照得分将所有值进行了排序
sub_df = sub_df.sort_values("score")
- 然后我按照以下方式获取输出(以字典格式为目标):
url_dict = sub_df.groupby('track')['url'].apply(list).to_dict()
我也尝试使用有序字典,但是它暂时没有用(至少现在还没有),因为groupBy命令正在发送错误顺序的数据。
Pandas = 0.23,Python = 3.6.4