2017-08-17 44 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? –