How to make first row turn into second level MultiIndex(如何使第一行变成二级多索引)
本文介绍了如何使第一行变成二级多索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个现有的DataFrame,如下所示:
1 | 1 | 1 | 2 | 2 | 2 | 2
--------------------------------------------------------
| abc | def | ghi | jkl | mno | pqr | stu
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
我已经尝试了一段时间,但没有成功。
重复的1和2已经是一级多重索引。 我知道如果我添加另一个级别,它们将合并在一起,但很难将第一行转换为多重索引的第二个级别。
有这样做的简单方法吗?
所需输出:
1 | 2
| abc | def | ghi | jkl | mno | pqr | stu
--------------------------------------------------------
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
| 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00
如有任何帮助,将不胜感激! 谢谢
推荐答案
Jezrael提出的解决方案需要进行一些更正:
df.columns
和df.iloc[0]
应一起第一个from_arrays
的参数,而不是两个单独的参数。多索引(df.iloc[0]二级来源) 应使用.Values进行补充。否则,此多索引级别 继承名称(0)-第0行的索引值。
生成的多索引应替换为
df.columns
, 不是全部df
。
所以整个解决方案应该是:
df.columns = pd.MultiIndex.from_arrays([df.columns, df.iloc[0].values])
df = df.iloc[1:]
这篇关于如何使第一行变成二级多索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使第一行变成二级多索引
基础教程推荐
猜你喜欢
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 如何防止Groupby超越指数? 2022-09-22
- 如何将RPC与Volttron配合使用 2022-09-21
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 从顶点坐标创建三角网格 2022-09-21
- Python h5py-为什么我收到广播错误? 2022-09-21