python - 使用子列熔化数据框
问题描述
我有一个带有 1 级子列的数据框:
A B C d
1 2 3 1 2 3
ssd usg c1 c2 c3 d7 d8 d9
ssd1 usg1 c11 c22 c33 d77 d88 d99
C 和 D 列有多个相同的子列
我想要列到行,这样输出应该是:
解决方案
DataFrame.stack
与DataFrame.reset_index
和一起使用rename
:
print (df.index)
MultiIndex([( 'ssd', 'usg'),
('ssd1', 'usg1')],
names=['A', 'B'])
print (df.columns)
MultiIndex([('C', '1'),
('C', '2'),
('C', '3'),
('d', '1'),
('d', '2'),
('d', '3')],
)
df = df.stack(0).reset_index().rename(columns={'level_2':'new'})
print (df)
A B new 1 2 3
0 ssd usg C c1 c2 c3
1 ssd usg d d7 d8 d9
2 ssd1 usg1 C c11 c22 c33
3 ssd1 usg1 d d77 d88 d99
推荐阅读
- node.js - 如何使用猫鼬创建多站点 url 以将特定信息存储到特定站点
- html - 如何正确地将水平滚动菜单放入 flexbox 布局中
- r - R Markdown 关键字未出现在文档中
- windows - Windows 在 Perl 命令中将除法运算符 '/' 作为反斜杠 '\'
- pyspark - 如何使用 pyspark 检查文件/文件夹是否存在而不会出现异常
- c# - 检查用户是否存在并返回用户 + 角色 EF6
- apache-nifi - Kafka 处理器不保留流文件的属性状态
- angular - 如何实现多选框
- node.js - 如何使用 TypeORM 查找选项获取关系表列?
- angular - 从 ionic 4 中的 firebase 数据库中获取随机密钥