[英]Convert Columns into rows DataFrame
I have the following DataFrame:我有以下数据帧:
Name姓名 | A一种 | B乙 | C C | D D | E乙 |
---|---|---|---|---|---|
BTU英热单位 | 2 2 | 3 3 | 0 0 | 9 9 | 7 7 |
BTP BTP | 1 1 | 2 2 | 7 7 | 9 9 | 0 0 |
And I want this:我想要这个:
Name姓名 | letter信 | Value价值 |
---|---|---|
BTU英热单位 | A一种 | 2 2 |
BTU英热单位 | B乙 | 3 3 |
BTU英热单位 | C C | 0 0 |
BTU英热单位 | D D | 9 9 |
BTU英热单位 | E乙 | 7 7 |
BTP BTP | A一种 | 1 1 |
BTP BTP | B乙 | 2 2 |
BTP BTP | C C | 7 7 |
BTP BTP | D D | 9 9 |
BTP BTP | E乙 | 0 0 |
How can I do it?我该怎么做?
You can do this with melt :你可以用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)
Result:结果:
Name姓名 | letter信 | Value价值 | |
---|---|---|---|
0 0 | BTU英热单位 | A一种 | 2 2 |
2 2 | BTU英热单位 | B乙 | 3 3 |
4 4 | BTU英热单位 | C C | 0 0 |
6 6 | BTU英热单位 | D D | 9 9 |
8 8 | BTU英热单位 | E乙 | 7 7 |
1 1 | BTP BTP | A一种 | 1 1 |
3 3 | BTP BTP | B乙 | 2 2 |
5 5 | BTP BTP | C C | 7 7 |
7 7 | BTP BTP | D D | 9 9 |
9 9 | BTP BTP | E乙 | 0 0 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.