我正在阅读一个excel文件在熊猫与两个级别的专栏。我正在使用Python3.7
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
我想将行“类别”和“日期”转换为数据框架的不同列。我尝试使用熔体,但我不知道如何做它,第二个熔体或熔体的组合行标题。
我想买些像
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熔体就会与列的名称中断。如果没有标头,则只为一列工作。示例:
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
我如何使两个级别的头熔化?
发布于 2021-12-13 18:48:30
首先,我们需要正确读取excel文件。
df = pd.read_excel('~/test.xlsx', header=[0, 1], index_col=[0, 1, 2])
使用需要保留MultiIndex
的NaN
级别进行堆栈,然后重置索引
df = df.stack(level=[1, 0], dropna=False).reset_index()
最后,重命名列
df.columns = ['ProjectNr', 'Name', 'Sector', 'Category', 'date', 'Price']
https://stackoverflow.com/questions/70338783
复制相似问题