我需要帮助格式化表格.这是一个更简单的版本,我将用一个例子来解释它.如果我有一张表如下:
Col1 Col2
A 8
B 2
C 3
A 4
B 5
C 6
A 7
B 1
C 9
Run Code Online (Sandbox Code Playgroud)
我希望它安排在col2的最高值出现的地方.在这种情况下,它是来自帐户C的9.因此,所有帐户C值都遵循,按Col2顺序排列.接下来,最高值由帐户A显示,因此所有帐户A值都遵循,再次以Col2值顺序排列.决赛桌应该是这样的:
Col1 Col2
C 9
C 6
C 3
A 8
A 7
A 4
B 5
B 2
B 1
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法来做到这一点.有任何想法吗?
您可能需要为sort_valuesby 创建帮助键groupby transform
df['helperkey']=df.groupby('Col1').Col2.transform('max')
df.sort_values(['helperkey','Col2'],ascending=[False,False]).drop('helperkey',1)
Out[102]:
Col1 Col2
8 C 9
5 C 6
2 C 3
0 A 8
6 A 7
3 A 4
4 B 5
1 B 2
7 B 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |