python - 按升序对熊猫列进行排序,然后对非 0 重复项进行排序
问题描述
我有一个我正在尝试排序的 pandas 数据框
在这里它将是未排序的
col1 col2 col3 col4
2 0 0 0
7 1207 3262 3
8 1212 3266 1
5 1246 3263 4
4 0 0 1
6 1232 3265 0
这将是理想的类型:
这将是预期的结果
col1 col2 col3 col4
6 1232 3265 0
2 0 0 0
8 1212 3266 1
4 0 0 1
7 1207 3262 3
5 1246 3263 4
我想要做的是按 col4 排序,但如果有重复,则使用 col2 中具有有效值(非 0)的行。问题是 col2 可能不是升序或降序,只包含一个有效值。
我能想到的唯一方法是创建新的数据框,但希望有更好的方法。
@ganderson 的方法最终对我有用
df.sort_values(['col4', 'col2'], ascending=[True,True], inplace=True)
解决方案
在提供的示例中,这看起来像
df.sort_values(['col4', 'col2'], ascending=[True,False]))
您希望如何应用第二级排序存在一些歧义,但这应该至少产生发布的输出
推荐阅读
- firebase - Stream Builder 加载更多数据
- mysql - 从 MariaDB 切换到 MySQL 后,学说不断生成相同的迁移文件
- jython-2.7 - 如何将列表列表中的每个项目作为一列添加到现有列表列表中?
- bigdata - 使用 OpenID Connect 或 SAML2 验证用户 Spline-UI
- php - 有效负载无效 - 没有任何变化。每分钟出错
- javascript - 为什么此查询结果的 ID 属性未定义?
- node.js - 通过带有嵌套对象值的 where 子句查找记录
- git - (Git) 在不丢失当前更改的情况下将先前的提交推送到新的存储库
- python - 为每个元组添加第一个值
- json - 格式化 JSON 数组数据