Concat DataFrame到多索引df保持原始多索引

时间:2020-10-01 11:32:45

标签: python pandas concat multi-index

我有一个预算财务项目的2个数据框,是所记录支出的1 df;

                          Food  Clothes  Bills  Social  Travel  Art  Other  Daily Total
Week End   Today's Date
2020-09-27 2020-09-21     25       25     25      25      25   25     25          175
           2020-09-23     20       20     20      20      20   20     20          140
           2020-09-24     12       12     12      12      12   12     12           84
           2020-09-25     20       20     20      20      20   20     20          140

和每周总数的其中之一;

     Food  Clothes  Bills  Social  Travel  Art  Other  Daily Total
0    77       77     77      77      77   77     77          539

我想同时保留它们的多重索引,使它们看起来像这样;

                          Food  Clothes  Bills  Social  Travel  Art  Other  Daily Total
Week End   Today's Date
2020-09-27 2020-09-21     25       25     25      25      25   25     25          175
           2020-09-23     20       20     20      20      20   20     20          140
           2020-09-24     12       12     12      12      12   12     12           84
           2020-09-25     20       20     20      20      20   20     20          140
                0         77       77     77      77      77   77     77          539

如果我执行基本的concat函数,则多索引会变成一堆元组,例如;

                                              Food  Clothes  Bills  Social

(2020-09-27 00:00:00, 2020-09-21 00:00:00)     25       25     25      25 
etc.

 

有什么想法吗?对熊猫来说还算是新事物,而且一般来说都编码,所以任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我更改了列标题,以使其更易于使用。 周末=周末 今天的日期=今天的日期 每日总计

您可以追加行

df2包含您的每周总计

#set an index to match your recorded spending df
df2['Week_End'] = '2020-09-27'
df2['Todays_Date'] = '0'
df2.set_index(['Week_End', 'Todays_Date'], inplace=True)


#append df2 to df
df = df.append(df2)

导致:

                        Food  Clothes  Bills  Social  Travel  Art  Other  Daily_Total
Week_End   Todays_Date                                                               
2020-09-27 2020-09-21     25       25     25      25      25   25     25          175
           2020-09-23     20       20     20      20      20   20     20          140
           2020-09-24     12       12     12      12      12   12     12           84
           2020-09-25     20       20     20      20      20   20     20          140
           0              77       77     77      77      77   77     77          539