【发布时间】:2016-02-13 05:17:24
【问题描述】:
我有一个数据框,df:
BRAND ART_TYPE YEAR_MONTH metrics Value
aaa xyz 201510 a 4500
aaa xyz 201510 b 8500
bbc abc 201510 c 3500
bbc abc 201510 d 10000
xxx def 201510 e 15000
我想为每组 (['BRAND','ART_TYPE','YEAR_MONTH']) 添加一个总行 所以结果应该是:
BRAND ART_TYPE YEAR_MONTH metrics Value
aaa xyz 201510 a 4500
aaa xyz 201510 b 8500
aaa xyz 201510 tot 13000
bbc abc 201510 c 3500
bbc abc 201510 d 10000
bbc abc 201510 tot 13500
xxx def 201510 e 15000
xxx def 201510 tot 15000
如何做到这一点?我们有什么功能吗?我尝试了 apply 和 groupby 功能,但没有奏效。如果需要更多信息,请告诉我。
我尝试的代码添加了一列:
df['total'] = df.groupby(['BRAND','ART_TYPE','YEAR_MONTH']).apply(calctot)
def calctot(df):
return(sum(df['Value']))
这给出了一个错误,即使它有效,这也会添加一列。
【问题讨论】: