python - 如何按列表的第二个元素对 Python DataFrame 进行排序
问题描述
所以标题有点混乱,但本质上,我有一个包含两列的数据框,一列用于字符(“c”),另一列用于字符坐标(“loc”)。我想按 Y 坐标对数据框进行排序。到目前为止,我已经设法使用 sort_values() 函数按 X 坐标对数据帧进行排序:
df = pd.DataFrame({"c":["i", "a"," d","m"], "loc":[[1, 2], [3, 3], [4, 2], [3,5]]})
df.sort_values(by=["loc"], inplace=True)
输出:
c loc
0 i [1, 2]
1 a [3, 3]
3 m [3, 5]
2 d [4, 2]
我的目标是:
c loc
0 i [1, 2]
2 d [4, 2]
1 a [3, 3]
3 m [3, 5]
循环遍历数据帧并反转 y 和 x 值不是一种选择,因为完整的数据帧将非常大。我认为这应该是可能的,因为新版本的 pd.df.sort_values() 有一个“关键”输入(链接到 pd.df.sort_values() 文档),但我对“关键”输入不够熟悉正确执行此操作。
解决方案
使用key
参数sort_values
:
df.sort_values(by ='loc', key=lambda x: x.str[1])
输出:
c loc
0 i [1, 2]
2 d [4, 2]
1 a [3, 3]
3 m [3, 5]
推荐阅读
- angular - 如何让 {{ab}} 以角度工作
- java - 设置文本编辑文本
- jquery - jQuery Validate 不适用于隐藏的输入
- node.js - Changing the default file to be loaded using lite-server
- nao-robot - Nao Robot unresponsive on boot
- python-3.x - How to put formula for columns in python pandas?
- excel - How to return object to UiPath in VBA?
- amazon-web-services - 尝试返回 mp3 文件时出现 Alexa 技能错误
- r - 如何存储和显示闪亮改变的顺序数据?
- java - 如何防止 Dockerfile 中的脚本退出?