python - 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
无论如何,在不使用自定义排序键的情况下实现这一点吗?
谢谢您的帮助
解决方案
用于.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
推荐阅读
- r - 从 R 中的推文中提取表情符号
- javascript - ObjectId 未保存在数组中
- python - 导入 talib 出现错误“模块 'talib' 没有 'EMA' 成员”
- javascript - 如何在 ReactJS 中的视图之间传递多个状态?
- angular - Angular jquery函数在网站中不起作用
- ios - 是否可以为 App Store 构建 iOS 移动应用程序以将 iMessages 导出为 PDF?
- function - Powershell - 如何在函数中使用 Start-Job 调用两个函数并传递计算机名称列表?
- c - 用空格替换下划线,并将名字和姓氏的第一个字母变为大写
- elasticsearch - 查询嵌套数组中不包含给定对象的文档
- javascript - 搜索数组,查找具有指定 id 的元素另一个数组,从结果中提取一个属性