我希望通过标识“任务”列的状态在数据框中创建一个新列“isRunning”。此外,我有一个“会话”列,如果会话在任务中只有START值而没有END值(例如,会话3只有START值),则“isRunning”在该会话结束之前应具有TRUE标志。
| | 会话|工作|正在运行|
| - -|- -|- -|- -|
| 第0页|一个|启动|正确|
| 一个|一个||正确|
| 2个|一个||正确|
| 三个|一个||正确|
| 四个|一个|结束|正确|
| 五个|一个||错误|
| 六个|2个||错误|
| 七个|2个|启动|正确|
| 八个|2个||正确|
| 九个|2个|结束|正确|
| 10个|2个||错误|
| 十一|2个||错误|
| 十二个|三个||错误|
| 十三个|三个|启动|正确|
| 十四|三个||正确|
| 十五个|三个||正确|
| 十六岁|四个||错误|
| 十七岁|四个|启动|正确|
| 十八岁|四个||正确|
| 十九个|四个||正确|
| 20个|四个|结束|正确|
不确定如何继续添加额外条件并确定任务是否正在运行。
import pandas as pd
d = {'Session':[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4],
'Task':['START', '', '', '', 'END', '', '', 'START', '', 'END', '', '', '', 'START', '', '', '', 'START', '', '', 'END']}
df = pd.DataFrame(data=d)
1条答案
按热度按时间rekjcdws1#
假设每组有一个起点/终点。您可以使用双掩码:
如果每个会话可能有多个开始/结束:
输出量: