首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel文件中熊猫数据的双“融化”

Excel文件中熊猫数据的双“融化”
EN

Stack Overflow用户
提问于 2021-12-13 17:42:17
回答 1查看 161关注 0票数 3

我正在阅读一个excel文件在熊猫与两个级别的专栏。我正在使用Python3.7

Example Excel file

代码语言:javascript
运行
复制
    Unnamed: 0  Unnamed: 1  Unnamed: 2  2021-01-01 2021-01-02   2021-01-03  2021-01-04  2021-01-05 
0   ProjectNr   Name        Sector      categorya   categoryb   categoryc   categoryd   categorye
1   1           aaa          A1         14.995      14.995      14.995       14.995     14.995
2   2           aaa          A2         7.4975      7.4975      7.4975       NaN        NaN
3   3           aaa          A3         NaN         11.996      11.996      11.996      NaN

我想将行“类别”和“日期”转换为数据框架的不同列。我尝试使用熔体,但我不知道如何做它,第二个熔体或熔体的组合行标题。

我想买些像

代码语言:javascript
运行
复制
ProjectNr   Name    Sector  Category    date         Price
1           aaa     A1      categorya   01/01/2021   € 15,00 
1           aaa     A1      categoryb   02/01/2021   € 15,00 
1           aaa     A1      categoryc   03/01/2021   € 15,00 
1           aaa     A1      categoryd   04/01/2021   € 15,00 
1           aaa     A1      categorye   05/01/2021   € 15,00 
2           aaa     A2      categorya   01/01/2021   € 7,50 
2           aaa     A2      categoryb   02/01/2021   € 7,50 
2           aaa     A2      categoryc   03/01/2021   € 7,50 
2           aaa     A2      categoryd   04/01/2021  
2           aaa     A2      categorye   05/01/2021  
3           aaa     A3      categorya   01/01/2021  
3           aaa     A3      categoryb   02/01/2021   € 12,00 
3           aaa     A3      categoryc   03/01/2021   € 12,00 
3           aaa     A3      categoryd   04/01/2021   € 12,00 
3           aaa     A3      categorye   05/01/2021  

如果我用header=0创建df,1熔体就会与列的名称中断。如果没有标头,则只为一列工作。示例:

代码语言:javascript
运行
复制
    Unnamed: 0  Unnamed: 1  Unnamed: 2  dt          value
0   ProjectNr   Name        Sector      2021-01-01  categorya
1   1           aaa         A1          2021-01-01  14.995
2   2           aaa         A2          2021-01-01  7.4975
3   3           aaa         A3          2021-01-01  NaN
4   ProjectNr   Name        Sector      2021-01-02  categoryb
5   1           aaa         A1          2021-01-02  14.995
6   2           aaa         A2          2021-01-02  7.4975

我如何使两个级别的头熔化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-13 18:48:30

首先,我们需要正确读取excel文件。

代码语言:javascript
运行
复制
df = pd.read_excel('~/test.xlsx', header=[0, 1], index_col=[0, 1, 2])

使用需要保留MultiIndexNaN级别进行堆栈,然后重置索引

代码语言:javascript
运行
复制
df = df.stack(level=[1, 0], dropna=False).reset_index()

最后,重命名列

代码语言:javascript
运行
复制
df.columns = ['ProjectNr', 'Name', 'Sector', 'Category', 'date', 'Price']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70338783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档