我有一个排序的熊猫数据帧,它看起来像下面的一个:
SessionNumber Timestamp_start Timestamp_complete Activity ColB ColC
2 2018-02-11 14:17:00 2018-02-11 14:21:00 "A" 3 4
2 2018-02-11 14:21:00 2018-02-11 14:22:30 "A" 3 4
2 2018-02-11 14:23:00 2018-02-11 14:28:30 "A" 3 4
2 2018-02-11 14:29:00 2018-02-11 14:31:30 "B" 3 4
2 2018-02-11 14:33:00 2018-02-11 14:35:30 "A" 3 4
...
3 2018-02-12 08:44:00 2018-02-12 08:50:30 "A" 2 1
3 2018-02-12 08:51:00 2018-02-12 08:51:30 "A" 2 1
我想根据SessionNumber将后面的相同活动合并到一个新行。 此示例的结果应为:
SessionNumber Timestamp_start Timestamp_complete Activity ColB ColC
2 2018-02-11 14:17:00 2018-02-11 14:28:30 "A" 3 4
2 2018-02-11 14:29:00 2018-02-11 14:31:30 "B" 3 4
2 2018-02-11 14:33:00 2018-02-11 14:35:30 "A" 3 4
...
3 2018-02-12 08:44:00 2018-02-12 08:51:00 "A" 2 1
数据帧按以下顺序排序:SessionNumber、Timestamp\u start、Activity
在同一个SessionNumber中,我希望合并紧跟在后面的条目(通过时间戳)。我只想在“活动”、“ColB”和“ColC”中具有相同值,并且“完成”和“开始”时间戳之间的时间差低于某个阈值(例如30秒)时合并行。 由于数据帧已经被排序,最明显的想法是对行进行迭代,并将符合条件的每2行合并。例如,删除一行并将新的时间戳_complete设置为剩余的一行
但是在熊猫中迭代是个坏主意
还有其他办法吗?
谢谢
根据评论和问题更改更新:
试试这个:
输出:
相关问题 更多 >
编程相关推荐