This is a tough one, but I think I have it.
Here's a example with a sample dataframe:
df = pd.DataFrame({'country': ['australia', 'australia', 'belgium','belgium'],
'year': [1980, 1985, 1980, 1985],
'data1': [1,5, 10, 15],
'data2': [100,110, 150,160]})
df = df.set_index(['country','year'])
countries = set(df.index.get_level_values(0))
df = df.reindex([(country, year) for country in countries for year in range(1980,1986)])
df = df.interpolate()
df = df.reset_index()
For your specific data, assuming every country has data for every 5 years between 1950 and 2010 (inclusive) it would be
df = pd.read_csv('path_to_data')
df = df.set_index(['country','year'])
countries = set(df.index.get_level_values(0))
df = df.reindex([(country, year) for country in countries for year in range(1950,2011)])
df = df.interpolate()
df = df.reset_index()
Kind of a tough problem. Interested to see if someone has a better solution