2017-08-17 27 views
0

以下是一个示例数据框。 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 
+0

你想要总和成为数据帧的另一行吗?什么是新行的Constraint_ID和Constraint名称? – DyZ

+0

DZY - 该行没有constraint_ID。约束名称是约束名称列的计数。 –

回答

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。

+1

学习'to_frame' :-)不错〜谢谢 – Wen

+0

谢谢。在sum为NaN的约束名称下,我怎么才能得到计数? –

+0

@ShyamaSonti对于这个例子,你想计数为3? –