熊猫转置到新列

哑光

我有以下来自 Microsoft 表单的数据框,我正在使用 Python 从 Sharepoint 站点下载它,我需要保存到我们的本地数据库以供进一步分析。

输入DF:

ID  Q1  Q2  QN
1   1   1   0
2   1   1   1
3   0   0   1
4   0   1   0

请注意,目前有 50 多列和数百行,但随着时间的推移会增加。

在将数据发送到 SQL Server 之前,我想转置数据帧,以便对其进行标准化以用于数据库存储。我想得到的输出如下:

输出DF:

ID  Question    Answer
1   Q1          1
1   Q2          1
1   QN          0
2   Q1          1
2   Q2          1
2   QN          1
3   Q1          0
3   Q2          0
3   QN          1
4   Q1          0
4   Q2          1
4   QN          0

我知道通过简单地使用 df.TI 将列转换为行不会获得太多;任何人都可以请解决一些可能的方法吗?即使使用简单的 Python 列表/字典或其他任何东西,也不一定需要用 Pandas 处理。谢谢

匿名01

您可以使用melt

df_new = df.set_index("ID").melt(var_name="Question", value_name="Answer", ignore_index=False).sort_index()

输出:

   Question  Answer
ID
1        Q1       1
1        Q2       1
1        QN       0
2        Q1       1
2        Q2       1
2        QN       1
3        Q1       0
3        Q2       0
3        QN       1
4        Q1       0
4        Q2       1
4        QN       0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章