python - 将python pandas数据框转换为不同的格式
问题描述
我在 python 中有一个数据框,我想以不同的格式进行转换:
以下是相同的示例:
当前数据框:
Header 1 Header 1
Col_A Col_B Col_A Col_B
2021-07-15 1 2 3 4
2021-07-16 5 6 7 8
预期输出:
Date Header_No Col_A Col_B
2021-07-15 1 1 2
2021-07-16 1 5 6
2021-07-15 2 3 4
2021-07-16 2 7 8
基本上我想要 4 列 Date , Header_No , Col_A , Col_B 。
解决方案
这就是字面意思.stack()
:
将列中的规定级别堆叠到索引。
通过一些调整以根据需要重命名列和/或索引级别和/或列:
>>> stacked = df.rename(columns=lambda c: int(c.split()[-1]), level=0).stack(level=0)
>>> stacked
Col_A Col_B
2021-07-15 1 1 2
2 3 4
2021-07-16 1 5 6
2 7 8
>>> stacked.rename_axis(['Date', 'Header_No']).reset_index()
Date Header_No Col_A Col_B
0 2021-07-15 1 1 2
1 2021-07-15 2 3 4
2 2021-07-16 1 5 6
3 2021-07-16 2 7 8
推荐阅读
- python - !r:<3 是什么意思?
- python - 根据其他数据框更改数据框中的值
- python - 具有类似于 excel 的用户输入区域的 Python GUI
- r - ndtv 中的动态顶点属性
- azure-application-insights - Azure Durable Functions 详细日志记录 App Insights
- python - 二维数组中边界的numpy检测
- node.js - 班扬原木印刷不漂亮
- itext - iText 7 Adding colored text and fill to a rectangle
- react-native - 模态打开和关闭无法正常工作
- sql-server - 如何使用 VB.Net DateTimePicker 从 SQL Server 获取数据