【发布时间】:2019-11-17 09:58:37
【问题描述】:
我有一个描述试卷的数据集。我想将其与学生获得的分数进行映射并进行一些分析。为此,我想融化试卷的细节。
Question Marks BL PI CO PSO PO
0 Q1 2 2 1.4 1 1 1,2
1 Q2 2 3 2.1 2 1 1,2
2 Q3 2 2 1.1 1 1 1,2
3 Q4 2 2 1.1 1 1 1,2
4 Q5 4 2 1.1 1 1 1,2
我试过了
qns = pd.read_csv('https://raw.githubusercontent.com/davidrajdgl/CodeSnippets/master/questions.tsv', sep="\t")
qns_melted = qns.melt(id_vars = ["Question", "Marks"])
qns_melted
但这似乎没有帮助,因为我希望通过拆分列来生成值列,单元格值中有一个逗号。
例如,
Q1 2 PO 1
Q1 2 PO 2
如何做到这一点?
【问题讨论】:
-
为什么您的数据框中的 PO 值为 1,2 而您的预期输出为 2?
-
@ansev 我只想要那种方式...因为,我需要再次按所有类别分组,然后再次在内部...比如“PO”是程序目标,1 和 2 代表这个 q2 属于 PO 1 和 PO 2。所以我需要这些信息 inf long 格式与学生标记每个问题的详细信息合并,然后进行分析。
-
融了之后,能不能不
.str.split(',').explode()你的值栏? -
(虽然你可能希望最终得到类似的东西:
m = df.set_index(['Question', 'Marks']).melt()then split/explode 相应地 -
@JonClements 我收到此代码错误:'Series' object has no attribute 'explode'
标签: python pandas pivot-table melt