根据日期持续时间绘制关卡花费的时间 pandas python

问题描述 投票:0回答:1

我有这个数据集,其中包含给定时间内问题发生情况的日志。我想标记每个状态,表明它在那段时间达到了什么水平。我用 pandas 在 python 上做这件事。

日期 田野 旧值 新价值
2024-05-16 20:03:00 状态 发展 质量保证
2024-05-15 01:30:00 级别 3 2
2024-05-14 20:03:00 状态 工作进行中 发展
2024-05-12 20:03:00 状态 调查 工作进行中
2024-05-08 01:30:00 等级 4 3
2024-05-06 18:57:00 状态 磨砂膏 调查
2024-04-30 00:18:00 级别 不适用 4

这是我想要的输出:

日期 田野 旧值 新价值 已用等级
2024-05-16 20:03:00 状态 发展 质量保证 2
2024-05-15 01:30:00 级别 3 2 2
2024-05-14 20:03:00 状态 工作进行中 发展 3
2024-05-12 20:03:00 状态 调查 工作进行中 3
2024-05-08 01:30:00 级别 4 3 3
2024-05-06 18:57:00 状态 磨砂膏 调查 4
2024-04-30 00:18:00 等级 不适用 4 4
python pandas dataframe
1个回答
0
投票

IIUC,按日期对值进行排序,选择值

where
字段为级别,然后
ffill
:

df['Level Spent'] = (df.sort_values(by='Date')['New Value']
                     .where(df['Field'].eq('Level')).ffill()
                    )

输出:

                  Date   Field         Old Value         New Value Level Spent
0  2024-05-16 20:03:00  Status       Development                QA           2
1  2024-05-15 01:30:00   Level                 3                 2           2
2  2024-05-14 20:03:00  Status  Work In Progress       Development           3
3  2024-05-12 20:03:00  Status       Investigate  Work in Progress           3
4  2024-05-08 01:30:00   Level                 4                 3           3
5  2024-05-06 18:57:00  Status             Scrub       Investigate           4
6  2024-04-30 00:18:00   Level               NaN                 4           4
© www.soinside.com 2019 - 2024. All rights reserved.