pandas dataframe 如何根据条件对行进行排序

如何解决pandas dataframe 如何根据条件对行进行排序

我正在尝试根据条件对已排序的数据集进行排序。数据框如下所示(预期输出是我想要的输出):

id 活动 duration_sec 周期 intended_cycle
1 1 开始 0.7 1 1
2 1 0.3 1 1
3 1 b 0.4 1 1
4 1 c 0.5 1 1
5 1 c 0.5 1 2
6 1 d 0.4 1 2
7 1 e 0.6 1 3
8 1 停止 2 1 3
9 1 开始 0.1 2 4
10 1 b 0.3 2 4
11 1 停止 0.2 2 4
12 1 f 0.3 3 5
13 2 停止 40 4 6
14 2 开始 3 5 7
15 2 0.7 5 7
16 2 3 5 7
17 2 b 0.2 5 7
18 2 停止 0.2 5 7
19 2 开始 0.1 6 8
20 2 f 0.4 6 8
21 2 g 0.2 6 8
22 2 h 0.5 6 8
23 2 h 6 6 8
24 2 停止 9 6 8
25 2 开始 0.2 7 9
26 2 e 0.3 7 9
27 2 f 0.4 7 10
28 2 停止 0.7 7 10

字母代表活动名称。我希望按照预期的周期列进行排序。这是基于在当前序列中的条件:

  1. 一个活动持续时间>“开始”后 0.5 秒,将被视为 1 个序列(或子序列,如果您愿意)。
  • 如果任一值 >0.5s,连续发生的重复活动将被视为一个活动
  1. 一个>0.5s 的活动,在第一个>0.5s 之后将被视为下一个序列
  • 如果超过 0.5 秒后没有更多活动,则将考虑序列,直到循环列值发生变化
  1. 如果当前周期内没有超过 0.5 秒的活动,则这些活动将被视为独立的(即第 25-28 行)

我真的很感激任何帮助。非常感谢有一个社区!

sample code for df:
data = {'Unnamed: 0': {0: 1,1: 2,2: 3,3: 4,4: 5,5: 6,6: 7,7: 8,8: 9,9: 10,10: 11,11: 12,12: 13,13: 14,14: 15,15: 16,16: 17,17: 18,18: 19,19: 20,20: 21,21: 22,22: 23,23: 24,24: 25,25: 26,26: 27,27: 28},'id': {0: 1,1: 1,2: 1,3: 1,4: 1,5: 1,6: 1,7: 1,8: 1,9: 1,10: 1,11: 1,12: 2,13: 2,14: 2,15: 2,16: 2,17: 2,18: 2,19: 2,20: 2,21: 2,22: 2,23: 2,24: 2,25: 2,26: 2,27: 2},'activity': {0: 'start',1: 'a',2: 'b',3: 'c',4: 'c',5: 'd',6: 'e',7: 'stop',8: 'start',9: 'b',10: 'stop',11: 'f',12: 'stop',13: 'start',14: 'a',15: 'a',16: 'b',17: 'stop',18: 'start',19: 'f',20: 'g',21: 'h',22: 'h',23: 'stop',24: 'start',25: 'e',26: 'f',27: 'stop'},'duration_sec': {0: 0.7,1: 0.3,2: 0.4,3: 0.5,4: 0.5,5: 0.4,6: 0.6,7: 2.0,8: 0.1,9: 0.3,10: 0.2,11: 0.3,12: 40.0,13: 3.0,14: 0.7,15: 3.0,16: 0.2,17: 0.2,18: 0.1,19: 0.4,20: 0.2,21: 0.5,22: 6.0,23: 9.0,24: 0.2,25: 0.3,26: 0.4,27: 0.7},'cycle': {0: 1,8: 2,9: 2,10: 2,11: 3,12: 4,13: 5,14: 5,15: 5,16: 5,17: 5,18: 6,19: 6,20: 6,21: 6,22: 6,23: 6,24: 7,25: 7,26: 7,27: 7},'intended_cycle': {0: 1,4: 2,5: 2,6: 3,7: 3,8: 4,9: 4,10: 4,11: 5,12: 6,13: 7,14: 7,15: 7,16: 7,17: 7,18: 8,19: 8,20: 8,21: 8,22: 8,23: 8,24: 9,25: 9,26: 10,27: 10}}

df = pd.DataFrame.from_dict(data)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?