細かい部分ですが、groupbyの基礎で集計結果に違和感を持たれる方もいらっしゃるかもしれません。
キー列で指定した「age」が他列名より一段下がって表示されています。

↓集計結果

Out[27]:
     educational_num  capital_gain
age
17              3978         48341
18              7086         65653
19              9568        133518
20             10397         74501
21             10336        185647

特段、後続処理に問題はないのですが、気になる方はas_index=Falseオプションをつけるとよいです。

In [28]: # age列ごとに'educational_num'と'capital_gain'を合計
    ...: data1.groupby('age', as_index=False)[['educational_num', 'capital_gain']].sum().head()
Out[28]:
   age  educational_num  capital_gain
0   17             3978         48341
1   18             7086         65653
2   19             9568        133518
3   20            10397         74501
4   21            10336        185647

これで、普段のデータの形に見えるようになります。