先按字母顺序,再按数字顺序

2024-09-28 22:34:45 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个简单的问题,我就是找不到答案。在下面这样的数据帧中,如何先按字母顺序再按数字顺序对对象进行排序。你知道吗

开始:

import pandas as pd

d ={'col1': ['A1','B2','A10','A7','C4','C2','C22','B4']}
df = pd.DataFrame(data=d)
df

  col1
0   A1
1   A7
2  A10
3   B2
4   B4
5   C2
6   C4
7  C22

我想要什么:

  col1
0   A1
1   A7
2  A10
3   B2
4   B4
5   C2
6   C4
7  C22

我得到的:

>>>df.sort_values(by='col1')

  col1
0   A1
2  A10
1   A7
3   B2
4   B4
5   C2
7  C22
6   C4

Tags: 数据答案df顺序a1字母b2a10
1条回答
网友
1楼 · 发布于 2024-09-28 22:34:45

使用熊猫对列表进行排序太过分了:

lot_file = pd.DataFrame()
lot_file['SPOOL'] = ['A39','B34','A3','B37','A6','B18','A48','B15','A47']
group_lots = lot_file.sort_values(by=['SPOOL'])
group_lots['SPOOL'].tolist()

输出:

['A3', 'A39', 'A47', 'A48', 'A6', 'B15', 'B18', 'B34', 'B37']

或者使用sorted

spool_list = ['A39','B34','A3','B37','A6','B18','A48','B15','A47']
sorted(spool_list)

输出:

['A3', 'A39', 'A47', 'A48', 'A6', 'B15', 'B18', 'B34', 'B37']

相关问题 更多 >