我的代码存在一些问题,任何人都知道可能出现的问题
代码
df=df.groupby(by='store')['transaction_number','transaction_amount'].agg(['count','sum']).reset_index()
错误
ValueError: cannot reindex from a duplicate axis
答案 0 :(得分:2)
稍微更改你的aggfunc,请务必明确告知agg
它聚合的列。
c = ['transaction_number','transaction_amount']
f = dict.fromkeys(c, ['count','sum'])
df = df.groupby('store', as_index=False).agg(f)
执行groupby
时,您可以指定as_index=False
,以便在最终结果中将石斑鱼作为列自动插入(这比最后调用reset_index
更有效)。
这是一个包含一些人为数据的快速演示:
df
store transaction_number transaction_amount
0 a 0 100
1 a 1 200
2 a 2 100
3 b 3 400
4 c 1 50
5 c 3 45
f
{
"transaction_amount": [
"count",
"sum"
],
"transaction_number": [
"count",
"sum"
]
}
df.groupby('store', as_index=False).agg(f)
store transaction_number transaction_amount
count sum count sum
0 a 3 3 3 400
1 b 1 3 1 400
2 c 2 4 2 95