按列对数据框中的某些行进行排序

布莱斯·拉姆戈文德(Bryce Ramgovind)

我有一个未排序的数据框。我想列进行排序ABCD降序(从大到小),但是它们必须保持面额小组。例如,它应该排序列面额100 ABCD所以因此行0,1,2变为0,2,1。

Index   Denomination    A   B   C   D
0        100            5   0   0   0
1        100            0   0   1   0
2        100            0   2   0   0
3        200            5   2   0   0
4        200            5   0   1   0
5        200            0   4   0   0
6        200            10  0   0   0
7        200            0   2   1   0
8        200            0   0   2   0

排序级别的顺序必须是ABC然后D重新标记Index并不重要。结果数据框应为:

Index   Denomination    A   B   C   D
0        100            5   0   0   0
2        100            0   2   0   0
1        100            0   0   1   0
6        200            10  0   0   0
3        200            5   2   0   0
4        200            5   0   1   0
5        200            0   4   0   0
7        200            0   2   1   0
8        200            0   0   2   0

这可以在excel中完成,方法是选择行,然后应用自定义排序,但是我需要使用数据框在python中完成。

艾汉

这应该做到这一点:

df.sort_values(by=['Denomination', 'A', 'B', 'C', 'D'], 
               ascending=[True, False, False, False, False])
Out: 
   Denomination   A  B  C  D
0           100   5  0  0  0
2           100   0  2  0  0
1           100   0  0  1  0
6           200  10  0  0  0
3           200   5  2  0  0
4           200   5  0  1  0
5           200   0  4  0  0
7           200   0  2  1  0
8           200   0  0  2  0

Denomination升序排序;如果是平局,则按A降序排序;如果是平局,则按B降序排序,依此类推。

如果不对“名称”列进行排序,而应按组的出现顺序将其保留,则可以执行以下操作:

df.groupby('Denomination')['Denomination'].transform(pd.Series.first_valid_index)
Out: 
0    0
1    0
2    0
3    3
4    3
5    3
6    3
7    3
8    3
Name: Denomination, dtype: int64

这将返回一个新列以跟踪组。您可以将此列添加到DataFrame中,并且可以具有最高优先级。

(df.assign(denomination_group = 
     df.groupby('Denomination')['Denomination'].transform(pd.Series.first_valid_index))
   .sort_values(by=['denomination_group', 'A', 'B', 'C', 'D'], 
                ascending=[True, False, False, False, False])
   .drop('denomination_group', axis=1))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何按多个列对数据框进行排序

按R中的列组长度对数据框进行排序

如何按Python(pandas)列中的出现次数对数据框进行排序

如何按R中的另一个数据框对数据框中的列顺序进行排序?

在熊猫数据框中对行进行排序并获取列ID

按NaN计数的降序对数据框的行进行排序

自然排序以按列名对数据框的列进行排序

按列对数据框多索引级别进行排序

熊猫:如何按一列的日期对数据框行进行排序

在保留列的同时对数据框行进行排序

按索引对数据框行进行分组

如何按季度对数据框中的行进行分组?

如何在Julia中按多个列对数据框进行排序

如果没有某些特定值,则对数据框列中的行进行计数

熊猫-按任何列中的最高单个值对数据框进行排序

按组对数据表中具有某些值的行进行计数

根据特定列中的值对数据框行进行排序

如何根据列中的值对数据框的行进行重新排序

我想按一列中的重复项对数据框进行排序

按R中的多个列(一组较大的列)对数据框进行排序

按R中的ALL列对数据框进行排序

按因子对数据框列进行排序

按字符和日期列对数据框进行排序

按每行的某些条件对数据文件行进行排序

如何按R中的列名对数据框进行排序?

按数字列对数据框进行排序

按索引对数据框进行排序

按数字对数据框进行排序

R:对数据框中的行进行重新排序

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

  3. 3

    创建Windows Phone 8应用并将其连接到数据库的最佳方法(最好是SQL Server)

  4. 4

    为什么Java中的System.out.println()打印到控制台?

  5. 5

    卷曲函数无法解析来自bash中变量的代理

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    设置与Apache POI Excel表散点图标记图标的颜色

  8. 8

    将Qt Pyside2与asyncio await语法一起使用?

  9. 9

    崇高的文字+蟒蛇的蟒蛇

  10. 10

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  11. 11

    OpenJDK的和AdoptOpenJDK的区别

  12. 12

    大型数据集缓存到Spark内存中时,“超出了GC开销限制”(通过sparklyr和RStudio)

  13. 13

    “执行测试CMAKE_HAVE_LIBC_PTHREAD”失败实际上是什么意思?

  14. 14

    使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

  15. 15

    React中的ForwardRefExoticComponent和ForwardRefRenderFunction有什么区别?

  16. 16

    猫鼬查找结果,然后将字段替换为findOne

  17. 17

    如何降级Google Colab的Torch版本

  18. 18

    Keras提前停止回调错误,val_loss指标不可用

  19. 19

    如何避免VSCode中的“导入路径不能以.ts扩展名结尾”错误?

  20. 20

    Nuxt.JS:如何在页面中获取路由URL参数

  21. 21

    是否有为什么会AccessibilityManager.sInstance导致内存泄漏的一个原因?

热门标签

归档