python pandasでgroupbyした後、複数の方法で集計したいの際に、1列に対して複数関数で集計すると、以下のような列構造になりました。

Out[39]:
  age educational_num        capital_gain
                 mean    sum         mean     sum
0  17        6.685714   3978    81.245378   48341
1  18        8.220418   7086    76.163573   65653
2  19        9.086420   9568   126.797721  133518
3  20        9.341420  10397    66.937107   74501
4  21        9.430657  10336   169.385949  185647

これだと、後続の処理で扱いづらいので、列名を整えたいところです。
例えば、上記のデータを、
age
educational_num_mean
educational_num_sum
capital_gain_mean
capital_gain_sum

の列名に変更することを考えます。

まず、集計後のデータフレームを準備します。

# 集計したい列と関数のペアを定義
func_dict = {
    'educational_num':['mean', 'sum'],
    'capital_gain':['mean', 'sum']
}

# 集計後のデータを格納する
data1_groupby = data1.groupby('age', as_index=False).agg(func_dict)

step1:列名を取得する

data1_groupby.columnsだけでは、要素を絞り込めないので、.ravel()でさらに奥の要素を取得します。

colnames = data1_groupby.columns.ravel()

※中身を確認すると、こんな感じで列名と関数名のペアが保管されていることがわかります

In [53]: data1_groupby.columns.ravel()
Out[53]:
array([('age', ''), ('educational_num', 'mean'),
('educational_num', 'sum'), ('capital_gain', 'mean'),
('capital_gain', 'sum')], dtype=object)

step2:列名の配列を操作して新しい列名を作る

# 付与し直す列名を入れる空配列を定義
new_colnames = []

# 集計後の列名を整える
for colname in colnames:
    # キー列の場合は、列名と関数名を結合しないので、例外処理する
    if colname[1] == '':
        new_colnames.append(colname[0])
    else:
        new_colnames.append('{}_{}'.format(colname[0], colname[1]))

step3:新しい列名で上書きする

# 整えた列名を、付与し直す
data1_groupby.columns = new_colnames

こうすることで、以下のように、よく見るデータ型に直すことができます。

In [10]: data1_groupby.head()
Out[10]:
   age  educational_num_mean  educational_num_sum  capital_gain_mean  \
0   17              6.685714                 3978          81.245378
1   18              8.220418                 7086          76.163573
2   19              9.086420                 9568         126.797721
3   20              9.341420                10397          66.937107
4   21              9.430657                10336         169.385949

   capital_gain_sum
0             48341
1             65653
2            133518
3             74501
4            185647