name = df_x.iloc[0]['name']
original = df_x.iloc[0]['birthdate']
for year in range(2016, 2019):
    d['name'].append(name)
d['birthday'].append(original.replace(year=year))
return pd.DataFrame(d)
print(df.groupby('name', group_keys=False).apply(get_birthdays).reset_index(
    drop=True))
Несколько результатов для каждой отдельной строки (один ко многим) с Pandas