首页 > 解决方案 > Pandas 按字母顺序对第二个字符的值进行排序

问题描述

我目前有一个如下所示的数据框列:

Location
CJ111
CJ111
CD111
CD111
BQ111
BQ111
BL111
BL111

我在用着

df = df.sort_values(by=['Location'], ascending=False)

我也希望 df 按第二个字符排序,例如。

Location
CD111
CD111
CJ111
CJ111
BL111
BL111
BQ111
BQ111

无论如何,在不使用自定义排序键的情况下实现这一点吗?

谢谢您的帮助

标签: pythonpandassortingalphabetical

解决方案


用于.str[1]从系列中获取第二个字符,然后用于argsort获取排序顺序内的值的位置,可以进一步用于对原始数据框进行排序:

df.loc[df.Location.str[1].argsort()]

#   Location
#2    CD111
#3    CD111
#0    CJ111
#1    CJ111
#6    BL111
#7    BL111
#4    BQ111
#5    BQ111

推荐阅读