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
排序。最后,删除该辅助列