首页 > 解决方案 > 将列转换为行 DataFrame

问题描述

我有以下数据框:

姓名 一个 C D
英热单位 2 3 0 9 7
BTP 1 2 7 9 0

我想要这个:

姓名 价值
英热单位 一个 2
英热单位 3
英热单位 C 0
英热单位 D 9
英热单位 7
BTP 一个 1
BTP 2
BTP C 7
BTP D 9
BTP 0

我该怎么做?

标签: pythondataframe

解决方案


你可以用melt做到这一点:

pd.melt(df, id_vars=['Name'], value_vars=['A', 'B', 'C', 'D', 'E'], var_name='letter', value_name='Value').sort_values(by='Name', ascending=False)

结果:

姓名 价值
0 英热单位 一个 2
2 英热单位 3
4 英热单位 C 0
6 英热单位 D 9
8 英热单位 7
1 BTP 一个 1
3 BTP 2
5 BTP C 7
7 BTP D 9
9 BTP 0

推荐阅读