我想做的就是将此SQL代码复制到Python:
select column_1, column_2, column_3,
sum(column_4) as sum_column_4, sum(column_5) as sum_column_5
from df
group by 1,2,3;
换句话说,我需要创建此数据框:
column_1 column_2 colunn_3 column_4 column_5
AA BB CC 5 3
AA BB CC 5 0
AA BB CC 7 3
AA DD EE 5 2
AA DD EE 7 1
DD EE FF 2 8
DD EE FF 1 0
看起来像这样:
column_1 column_2 colunn_3 sum_column_4 sum_column_5
AA BB CC 17 6
AA DD EE 12 3
DD EE FF 3 8
另外,我试图使这一过程尽可能简单,因为我实际上有很多列。我需要有一个新的Pandas数据框作为输出。所以这就是我尝试过的:
df.groupby(list(df.columns)[0:3]).sum()
几乎快到了,问题在于输出变得很奇怪,就像:
column_1 column_2 colunn_3 sum_column_4 sum_column_5
AA BB CC 17 6
DD EE 12 3
DD EE FF 3 8
[我正在尝试其他文章中看到的不同内容,例如Pandas DataFrame Groupby two columns and get counts和Python Pandas group by multiple columns, mean of another - no group by object,但这没有用。因此,如果有人可以帮助我。
df.groupby(list(df.columns)[0:3]).sum().reset_index()
输出:
column_1 column_2 colunn_3 column_4 column_5
0 AA BB CC 17 6
1 AA DD EE 12 3
2 DD EE FF 3 8