python - 在降序 Pandas 中按数据框中的特定列分组
问题描述
所以我有一个包含 187 列的数据框。最后一列(称为目标)在 1 和 0 中表示真或假。我想根据最后一列对所有行进行分组,如果它有 1,如果它们在最后一列中等于 0,则所有行都为 0。1 显示在顶部,0 显示在 1 之后。另外,是否可以取出最后一列中最后一个“1”的索引值?
抱歉,如果这有点令人困惑,或者已经回答但我似乎找不到任何东西。大约有 18000 行,大约有 18000 行。14000 个值等于 1,其余 4000 个值等于 0。希望能在这里得到一些指导。
解决方案
首先mergesort
按列排序值并按以下方式target
获取最后一行target
: DataFrame.drop_duplicates
df1 = df.sort_values('target', ascending=False, kind='mergesort')
last = df1.drop_duplicates('target', keep='last')
如果需要分组:
for name, g in df1.groupby('target'):
print (name)
print (g)
推荐阅读
- javascript - 字段长度始终 = 1
- google-app-maker - Google App Maker Widget Validate on Datasource select
- xml - 如何使用 xslt 将给定的 xml 转换为如下内容
- python - Python从输入文件中读取行并写回文件
- c# - 有没有办法正确传递包含“?”的字符串 到 .net 核心 web api?
- python - python程序重载'=='运算符以打印具有相同分数的学生的详细信息
- css - 在测试用例上找不到 iframe
- c# - 如何从下拉列表中将项目添加到列表框中
- sql-server - SQL Server 复制:如何找出哪些订阅者附加到分发服务器
- sql - 带有has_many关联查询的Rails复杂范围