python - 一个 Pandas Dataframe 上的多种排序
问题描述
假设我有一个 Pandas 数据框:
Col_A Col_B Col_C
501 A 2
501 G 19
501 B 10
501 Z 32
502 B 7
502 J 34
502 M 8
502 S 90
我正在寻找一种将多种排序应用于一个数据框的方法。例如,在 Col_A = 501 的情况下,Col_B 和 Col_C 将是升序的。在 Col_A = 502 的情况下,Col_B 和 Col_C 会这样下降:
Col_A Col_B Col_C
501 A 2
501 B 10
501 G 19
501 Z 32
502 S 90
502 M 34
502 J 8
502 B 7
任何帮助将非常感激!
解决方案
像这样的东西会起作用:
In [2132]: d1 = df[df['Col_A'].eq(501)].sort_values(by=['Col_B', 'Col_C'])
In [2133]: d2 = df[df['Col_A']eq(502)].sort_values(by=['Col_B', 'Col_C'], ascending=False)
In [2137]: df = d1.append(d2)
In [2138]: df
Out[2138]:
Col_A Col_B Col_C
0 501 A 2
2 501 B 10
1 501 G 19
3 501 Z 32
7 502 S 90
6 502 M 8
5 502 J 34
4 502 B 7
推荐阅读
- android - dnsjava 在lookup.run() 上返回网络错误
- java - 构建java项目时出现maven错误
- reactjs - React Native Web 不会使用线性渐变编译
- java - 获取 Gradle 守护程序以在特定 Java 版本上运行
- python - 具有 return_sequence=True 的 LSTM 之后的 Keras Dense 层
- python - 尝试使用列表中的值填充熊猫表中的新列,使用同一表中现有列的值作为索引
- android - 尝试使用自适应图标构建科尔多瓦应用程序时出错
- java - 错误:不兼容的字符串类型:意外的返回值 - 这是我返回字符串时代码的错误
- python-3.x - UnicodeDecodeError:读取语言环境配置文件
- batch-file - 批处理脚本问题 - 如何转换日期或建议任何逻辑以满足给定代码中的 IF 语句要求?