计算数据帧的总和并将其附加到顶部

时间:2017-08-17 01:13:24

标签: python pandas dataframe sum append

这是一个示例数据框。 Set_index用于将Constraint_ID设置为索引,该索引与其余列错误对齐。

我想要的是将TotalSP,Onpeak和Offpeak的总和放在下面的空格中(由于未对齐而产生的空间)。那可能吗?如果没有,我可以在显示列总数的列标签下方创建另一行吗?

         Constraint Name    TotalSP       Onpeak    Offpeak
Constraint_ID               
77127   aaaaaaaaaaaaaaaaaa  -2174.5     -2027.21    -147.29
98333   bbbbbbbbbbbbbbbbbb  -1180.62    -1180.62     0
1049    cccccccccccccccccc  -1036.53    -886.77     -149.76

1 个答案:

答案 0 :(得分:1)

首先,您可以使用df.sum计算总和:

In [189]: df2 = df.iloc[:, 1:].sum().to_frame().T.rename({0 : 'sum'}); df2
Out[189]: 
     TotalSP  Onpeak  Offpeak
sum -4391.65 -4094.6  -297.05

接下来,您可以使用pd.concat

将其与第一个数据框连接起来
In [191]: pd.concat([df2, df])
Out[191]: 
          Constraint Name  Offpeak   Onpeak  TotalSP
sum                   NaN  -297.05 -4094.60 -4391.65
77127  aaaaaaaaaaaaaaaaaa  -147.29 -2027.21 -2174.50
98333  bbbbbbbbbbbbbbbbbb     0.00 -1180.62 -1180.62
1049   cccccccccccccccccc  -149.76  -886.77 -1036.53

免责声明,除非您只想将其写入csv,否则我不建议这样做。