Pandas的DataFrame对象怎么分组排序并保留分组的顺序?

遇到一个问题,简化了下。

有一个dataframe

df = pd.DataFrame([['a', 1, 'c'], ['a', 3, 'a'], ['a', 2, 'b'],
                   ['c', 3, 'a'], ['c', 2, 'b'], ['c', 1, 'c'],
                   ['b', 2, 'b'], ['b', 3, 'a'], ['b',1, 'c']], columns=['A', 'B', 'C'])

clipboard.png

预期是按照A列分组,按B列排序, 所以怎么将其转换成下面这种形式?

clipboard.png

阅读 9.5k
2 个回答

clipboard.png

兄弟, 我再简化一下问题, 你说的按A列分组,直接把A列排序不就完了, 排序会有分组的功能(相同的挨在一起)
所以直接:

df.sort_values(['A', 'B'])

clipboard.png

clipboard.png

而参数by列表元素的顺序,就是你依据哪一列先排序的顺序

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题