这是我简化的 CSV 样本数据:
Project;Step 1 Start;Step 1 End;Step 2 Start;Step 2 End;Step 3 Start;Step 3 End;Step 4 Start;Step 4 End;Step 5 Start;Step 5 End;Finish
A;01.01.2020;02.01.2020;02.01.2020;03.01.2020;03.01.2020;04.01.2020;04.01.2020;05.01.2020;05.01.2020;06.01.2020;06.01.2020
B;01.02.2020;02.02.2020;02.02.2020;03.02.2020;;;;;03.02.2020;04.02.2020;04.02.2020
C;01.03.2020;02.03.2020;02.03.2020;;;;;;;03.03.2020;03.03.2020
D;01.04.2020;;;;;;;;;02.04.2020;02.04.2020
E;01.05.2020;02.05.2020;02.05.2020;03.05.2020;;;03.05.2020;;;04.05.2020;04.05.2020
读取文件:
import pandas as pd
df = pd.read_csv("sampledata.csv", sep=";")
数据结构:
Project Step 1 Start Step 1 End Step 2 Start Step 2 End Step 3 Start \
0 A 01.01.2020 02.01.2020 02.01.2020 03.01.2020 03.01.2020
1 B 01.02.2020 02.02.2020 02.02.2020 03.02.2020 NaN
2 C 01.03.2020 02.03.2020 02.03.2020 NaN NaN
3 D 01.04.2020 NaN NaN NaN NaN
4 E 01.05.2020 02.05.2020 02.05.2020 03.05.2020 NaN
Step 3 End Step 4 Start Step 4 End Step 5 Start Step 5 End Finish
0 04.01.2020 04.01.2020 05.01.2020 05.01.2020 06.01.2020 06.01.2020
1 NaN NaN NaN 03.02.2020 04.02.2020 04.02.2020
2 NaN NaN NaN NaN 03.03.2020 03.03.2020
3 NaN NaN NaN NaN 02.04.2020 02.04.2020
4 NaN 03.05.2020 NaN NaN 04.05.2020 04.05.2020
每一行代表一个项目
每个项目可以运行不同的步骤(在这个简化的示例中只有 5 个项目和 5 个步骤。原始数据有超过 100k 个项目和 40 个步骤)
每个步骤都有两列。项目进入步骤时为“开始”列,项目离开步骤时为“结束”列
每个项目都以“第 1 步开始”开始,以“完成”结束,但并非必须遵循每个步骤
有时“结束”时间戳写在错误的列中,我必须用 python 更正它。当完成一个项目时,最后一个“结束”时间戳写在“Step 5 End”而不是最后一步“Step X End”。
如果“Finish”和“Step 5 End”包含时间戳并且“Step 5 Start”为 NaN。
如果“Start”和“End”包含值,请检查从 1 到 n 的每个步骤。如果“Start”包含一个值而“End”为空,则将时间戳从“Step 5 End”移动到“Step X End”
冉冉说
眼眸繁星
随时随地看视频慕课网APP
相关分类