python - Pandas:将列名的子集转换为值
问题描述
如果我有这样的熊猫数据框:
| F1 | F2 | F3 | Flag
---------------------
0 | 10 | 22 | 54 | True
1 | 3 | 77 | 9 | False
我怎样才能把它变成这样:
| F | Val | Flag
-------------------
0 | F1 | 10 | True
1 | F2 | 22 | True
2 | F3 | 54 | True
3 | F1 | 3 | False
4 | F2 | 77 | False
5 | F3 | 9 | False
我已经研究过数据透视表和多索引,但我很难将它们组合在一起。
解决方案
使用df.melt
:
In [141]: df.melt(id_vars='Flag', var_name='F', value_name='Val')
Out[141]:
Flag F Val
0 True F1 10
1 False F1 3
2 True F2 22
3 False F2 77
4 True F3 54
5 False F3 9
推荐阅读
- ios - firestore 只允许写入一个字段
- java - 如何在 Jav ATW 中使用 Big Decimal
- r - 尝试在 ggplot 中使用 stat_function 时收到错误
- ionic3 - SqPayForm 没有呈现 ionic 3 中的字段
- php - 在 Woocommerce 中显示链接文本而不是显示 URL
- javascript - Angular 2/4/5:如何在另一个元素中移动元素
- jenkins - 使用正则表达式重试詹金斯管道声明性语法
- javascript - 测试数组是否为空或包含某个对象
- javascript - 使用 Node.js 和 Promises 实现指数退避
- sql - 基于多系统数据库结构的复制/更新最佳实践