python - 将列转换为行 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 |
我该怎么做?
解决方案
你可以用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 |
推荐阅读
- dart - int.dart 类中 isEven 的实现在哪里?
- c++ - qnetworkreply 没有状态码或错误但失败
- amazon-web-services - Elasticsearch 对象映射尝试将字段 [null] 解析为对象,但找到了具体值
- python - 我需要在 python 3 中将无限表示为整数
- c++ - Asio 从网络服务器读取 txt 文件
- vb.net - 对 TreeView 节点进行排序
- android - 如果在 Android 设备上为 wifi 启用代理,互联网将无法正常工作
- python-3.x - 执行以下程序时出现“NameError: name 'self' is not defined”
- c# - RijndaelManaged 类在进程转储中存储纯文本密码
- asp.net-core - Quartz - .NET Core - 空引用异常