Pandas groupby agg returns 多索引列如何删除多索引?

Pandas groupby agg returns multiindex columns how to remove multiindex?

我想了解如何在应用 groupby 和 agg 后删除多索引列 - 见下文,最后一个命令 returns (Target, count), (Target, sum) 多索引列,但我想要一个数据框没有多索引

# Sample Data Creation
lst_Purchase_Date = ['2022-02-28','2022-02-28','2022-02-28','2022-03-01','2022-03-01']
lst_Target = [0,0,1,1,1]
df_test = pd.DataFrame(list(zip(lst_Purchase_Date,lst_Target)),columns=['Purchase_Date','Target'])
df_test.head()

    Purchase_Date   Target
0   2022-02-28        0
1   2022-02-28        0
2   2022-02-28        1
3   2022-03-01        1
4   2022-03-01        1

在列多索引中使用 groupby 和 agg 结果

result = df_test.groupby('Purchase_Date').agg(['sum','count'])
result = result.reset_index()
result.head()

    Purchase_Date   Target
                   sum  count
0   2022-02-28       1  3
1   2022-03-01       2  2

我需要如下结果

Purchase_Date Target_Sum Target_Count
2022-02-28       1            3
2022-03-01       2            2

您可以对 agg 使用更详细的语法,您可以在左侧指定列名,然后是要操作的列,然后是要应用的函数

import pandas as pd

df = pd.DataFrame(
    {'Purchase_Date': 
     {0: '2022-02-28',
      1: '2022-02-28',
      2: '2022-02-28',
      3: '2022-03-01',
      4: '2022-03-01'},
 'Target': {0: 0, 1: 0, 2: 1, 3: 1, 4: 1}}
)

result = df.groupby('Purchase_Date').agg(
    Target_Sum = ('Target','sum'),
    Target_Count = ('Target','count'),
)

result