为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫按字母顺序第二个字符对值进行排序

熊猫按字母顺序第二个字符对值进行排序

明月笑刀无情 2023-01-04 11:00:10
我目前有一个数据框列,如下所示:LocationCJ111CJ111CD111CD111BQ111BQ111BL111BL111我在用着df = df.sort_values(by=['Location'], ascending=False)我希望 df 也按第二个字符排序,例如。LocationCD111CD111CJ111CJ111BL111BL111BQ111BQ111有没有办法在不使用自定义排序键的情况下实现这一点?谢谢您的帮助
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

用于.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


查看完整回答
反对 回复 2023-01-04
?
函数式编程

TA贡献1807条经验 获得超9个赞

另一种选择是将 sort_values 与索引一起使用,您以后可以将其用于其他排序等:


完整代码


import pandas as pd

lst = ['CJ111','CJ111','CD111','CD111','BQ111','BQ111','BL111','BL111']

df = pd.DataFrame(lst, columns =['Location']) 

df = df.reset_index(drop=True)

idx = df['Location'].str[1:2].sort_values().index

df = df.reindex(idx).reset_index(drop=True)

print(df)


查看完整回答
反对 回复 2023-01-04
  • 2 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信