Python 对两列上的Dataframe进行排序,其中一列值按顺序重复

Python 对两列上的Dataframe进行排序,其中一列值按顺序重复,python,pandas,Python,Pandas,我的输入数据框有两列: df c1 c2 0 a 8 1 a 3 2 b 2 3 c 1 4 b 10 5 c 8 6 a 10 7 c 7 我想对上述数据帧进行排序,以便列“c1”中的值按顺序(abcabcac)显示,其对应的列“c2”值按升序(或降序)显示,如下所示: df_out: c1 c2 0 a 3 1 b 2 2 c 1 3 a 8 4 b 10 5 c 7 6 a 10 7 c

我的输入数据框有两列:

df

  c1  c2
0  a   8
1  a   3
2  b   2
3  c   1
4  b  10
5  c   8
6  a  10
7  c   7
我想对上述数据帧进行排序,以便列“c1”中的值按顺序(abcabcac)显示,其对应的列“c2”值按升序(或降序)显示,如下所示:

df_out:
  c1  c2
0  a   3
1  b   2
2  c   1
3  a   8
4  b  10
5  c   7
6  a  10
7  c   8
请建议如何实施此类排序/排序

df.assign(c3 = df.groupby('c1')['c2'].rank()).sort_values(['c3', 'c1']).drop('c3', axis=1)
Out[21]: 
  c1  c2
1  a   3
2  b   2
3  c   1
0  a   8
4  b  10
7  c   7
6  a  10
5  c   8
这将创建一个新列
c3
,该列具有每个字母(相对于c2)的排序等级,以用于排序。然后,它按该列和
c1
排序。最后,删除该辅助列