2017-08-07 131 views
0

下面是一個例子:如何將兩行合併爲一個基於多列的行?

Column A Column B Column C 
    A_1  B_1  0 
    A_1  B_1  1 
    A_1  B_2  2 
    A_1  B_2  3 

我想獲得:

Column A Column B Column C 
    A_1  B_1  1 
    A_1  B_2  5 

我試圖做df.groupby(["Column A", "Column B"])["Column C"].sum()但我與其中指數是根據(Column A, Column B)與列Column C Series對象返回數字是連接而不是總和。

回答

2

當致電df.groupby時,請指定as_index=False,以便列不會轉換爲Index。 groupby後可以使用df.agg

In [990]: df.groupby(["Column A", "Column B"], as_index=False).agg('sum') 
Out[990]: 
    Column A Column B Column C 
0  A_1  B_1   1 
1  A_1  B_2   5 
+0

謝謝!當我讀取我的數據文件時,我犯了一個錯誤。列C應該首先更改爲數字類型。這就是爲什麼我已經獲得字符串連接而不是你的代碼和我的總和。我意識到使用'.sum()'也給出了完全相同的答案。 –

+0

@StanleyGan如果你喜歡MultiIndex,你的解決方案是好的。否則,我推薦這個。乾杯。 –