Я не могу добавить комментарий к M. Kiewisch, так как у меня недостаточно очков репутации (есть только 41, но вам нужно больше 50 комментариев).
Во всяком случае, просто хочу указать что решение М. Кивиша не работает так, как есть, и может потребоваться больше настроек. Рассмотрим, например,
>>> df = pd.DataFrame({'a': [1, 2, 3, 5], 'b': [4, np.NaN, 6, 4]})
>>> df
a b
0 1 4.0
1 2 NaN
2 3 6.0
3 5 4.0
>>> df.groupby(['b']).sum()
a
b
4.0 6
6.0 3
>>> df.astype(str).groupby(['b']).sum()
a
b
4.0 15
6.0 3
nan 2
, который показывает, что для группы b = 4.0 соответствующее значение равно 15 вместо 6. Здесь оно просто объединяет 1 и 5 как строки вместо того, чтобы добавлять их в виде чисел.