Вы можете попробовать series.clip
обрезать верхнюю границу в серии, затем выполнить groupby и sum:
out = df['files'].groupby(df['Days'].clip(upper=5)).sum().reset_index()
print(out)
Days files
0 1 10
1 3 20
2 4 30
3 5 90
Если вы действительно хотите изменить что-либо выше 5 в тип str, вы можете jst замените 5
, используя приведенный выше лог c:
out = df['files'].groupby(df['Days'].clip(upper=5).replace(5,'5+')).sum().reset_index()
print(out)
Days files
0 1 10
1 3 20
2 4 30
3 5+ 90