所以我发现在我的数据集中,有几个项目在相似的时间段参与。样本数据
import pandas as pd
df = pd.DataFrame({"Proj": ["a", "b", "c"],
"Start": ['2017-01-01', '2017-02-01', '2017-03-15'],
"End": ['2017-02-28','2017-03-01','2017-04-15'],
"Mon": [0.8,0.4,0.5],
"Tues": [0.6,0.4,0.5],
"Wed": [0.4,0.1,0.5],
"Thurs": [0.2,0,0.5],
"Fri": [0,0.5,0.5]
})
例如上面的数据集
项目A从“2017-01-01”到“2017-02-28” 然而,项目B从“2017-02-01”到“2017-03-01” 这意味着在“2017-02-01”至“2017-02-28”期间,项目A和B同时运行
我想做的是要么做一个新的表格来显示交叉点,要么用某种方式来可视化数据。如果我需要把它转换成一个新的表,我要做的就是让它看起来像
Start End Proj Mon Tues Wed Thurs Fri
2017-01-01 2017-02-01 A 0.8 0.6 0.4 0.2 0
2017-02-01 2017-02-28 A,B 1.2 1 0.5 0.2 0.5
2017-02-28 2017-03-01 B 0.4 0.4 0.1 0 0.5
2017-03-15 2017-04-15 C 0.5 0.5 0.5 0.5 0.5
有什么想法如何转换初始表以获得这种输出,或者我可以做什么样的可视化来显示类似的东西
我想把它变成这样:
因此,首先从第一个开始到最后一个结束生成DatetimeIndex:
然后用该索引和
columns=df.Proj
创建一个新的数据帧,初始值为False
:然后将每个项目处于活动状态的单元格更改为True:
一旦转换了表,就可以很容易地将它转换成一个
True
单元格颜色不同的表,如甘特图相关问题 更多 >
编程相关推荐