我有关于学生所修课程顺序的数据,我想用Sankey图表示班级之间的流程。我的数据是长格式的Pandas数据帧,其中某人执行的每个步骤都有一行,这些步骤的顺序由一列order
指定:
我旋转此表以将其聚合为序列,并计算每个序列的计数:
请注意,我希望保留End
值,但如果这会导致问题,我很乐意放弃它,让人们停下脚步
在Plotly中构建Sankey需要具有源和目标的数据格式。以下是Plotly文档上的示例
source = [0, 1, 0, 2, 3, 3],
target = [2, 3, 3, 4, 4, 5],
value = [8, 4, 2, 8, 4, 2]
我需要将我的数据转换为上述格式,但要转换为我的整个数据帧。
如果我在处理一个小数据集,比如上面的玩具数据集,我可以手动创建它。但是,我有一个包含数千行的数据帧,我不知道如何在熊猫中实现这一点。这看起来像是某种窗口计算,但我不知道怎么做
我也有点困惑如何创建编码方案,因为我失败的尝试创建了一个没有四个课程序列的viz
非常感谢您的帮助
玩具数据:
student = ['Jerry','Jerry','Jerry','Jessy','Jessy','Jessy','Raphael','Raphael','Raphael','Raphael','Sally','Sally','Sally']
course = ['A','B','C','C','A','B','A','C','C','B','A','B','C']
order = [1,2,np.NaN,1,2,3,1,2,3,4,1,2,np.NaN]
df = pd.DataFrame({'student':student, 'course':course,'order':order})
目前没有回答
相关问题 更多 >
编程相关推荐