在 groupby() Pandas 之后将多索引转换为单索引

use*_*364 5 python pandas

可能这个问题是一些函数的捆绑。我在重命名多个索引并转换为简单索引时遇到问题。

假设我有以下 DF

Customer      Date               Amount
John          10-10-2016         100,00
Mark          12-10-2016         50,00
John          13_10_2016         200,00
Run Code Online (Sandbox Code Playgroud)

如果我应用以下代码:

aggregation = {'Amount':{
                'total' : 'sum'},
                'Date':{
                 'first_purchase' :'min',
                 'last_purchase' : 'max'}
               }
 df_final = df.groupby('Customer').agg(aggregation).reset_index()
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

  Customer     Amount           Date
               total            first_purchase    last_purchase 
  John         300,00            10-10-2016       13-10_2016
  Mark         50,00             12-10-2016       12-10-2016
Run Code Online (Sandbox Code Playgroud)

问题是,我稍后将使用这个数据框与其他数据框合并,而多重索引对我来说并不好。我想将其转换为单个索引以获得如下数据框:

      Customer     total            first_purchase    last_purchase 
      John         300,00            10-10-2016       13-10_2016
      Mark         50,00             12-10-2016       12-10-2016
Run Code Online (Sandbox Code Playgroud)

我已经尝试过一些 unstack 并将索引重置为 0 级,但它不起作用。有人能帮我吗?如果这是一个重复的问题,我很抱歉,但经过多次尝试,到目前为止我还没有找到答案。

tks

WeN*_*Ben 3

我们可以使用droplevel

df_final.columns=df_final.columns.droplevel(0)
df_final.reset_index(inplace=True)
Run Code Online (Sandbox Code Playgroud)