Предполагая, что ваш df упорядочен, вы можете просто использовать комбинацию np.where и shift, а затем фильтровать
import numpy as np
import pandas as pd
df = pd.DataFrame()
df['Geo'] = ['toronto','toronto','toronto']
df['Age'] = ['-1 ~ 7','0 ~ 4','5 ~ 9']
df['2010'] = [2,5,4]
df['2010'] = np.where(df['Age']=='0 ~ 4',df['2010']+df['2010'].shift(1),df['2010'])
df = df[~(df['Age']=='-1 ~ 7')]
display(df)
Geo Age 2010
1 toronto 0 ~ 4 7.0
2 toronto 5 ~ 9 4.0