reindex错误 - python

时间:2018-02-08 20:49:54

标签: python pandas group-by pandas-groupby reindex

我的代码存在一些问题,任何人都知道可能出现的问题

代码

df=df.groupby(by='store')['transaction_number','transaction_amount'].agg(['count','sum']).reset_index()

错误

ValueError: cannot reindex from a duplicate axis

1 个答案:

答案 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