Как добавить цифру к каждому элементу списка?

Делаю импорт из .xlsx Получаю вот такой df:

my.dtypes
Период     datetime64[ns]
Телефон            object
dtype: object

Сам датафрейм выглядит вот так:

    Период       Телефон
0   2021-01-01  8312333666; 9101054581; 8312617706
1   2021-01-08  9307167823
2   2021-01-08  9307167823
3   2021-01-11  9200211539; 9200239899; 9519012568
4   2021-01-11  9108917638

Каким образом можно добавить к каждому номеру в каждом списке цифру '8', чтобы получилось вот так:

Период       Телефон
0   2021-01-01  88312333666; 89101054581; 88312617706
1   2021-01-08  89307167823
2   2021-01-08  89307167823
3   2021-01-11  89200211539; 89200239899; 89519012568
4   2021-01-11  89108917638

Делаю вот так, но добавляет только первому элементу в списке:

country_code = "8"
my['Телефон'] = country_code + my['Телефон'].map(str)

Ответы (2 шт):

Автор решения: MaxU

Исходный фрейм:

In [138]: df
Out[138]:
                                    phone
0               [8312437527,  9023099753]
1                                     NaN
2                                     NaN
3  [8312477313,  8314148820,  9202539919]
4  [8312477313,  8314148820,  9202539919]

решение:

df.loc[df["phone"].notna(), "phone"] = \
    (df
     .loc[df["phone"].notna(), "phone"]
     .map(lambda x: ["8" + y.lstrip() for y in x]))

результат:

In [140]: df
Out[140]:
                                     phone
0               [88312437527, 89023099753]
1                                      NaN
2                                      NaN
3  [88312477313, 88314148820, 89202539919]
4  [88312477313, 88314148820, 89202539919]
→ Ссылка
Автор решения: MaxU

Решение для измененного вопроса (в изначальной версии данные были представлены списками, а не CSV строками):

In [154]: df
Out[154]:
                                phone
0  8312333666; 9101054581; 8312617706
1                          9307167823
2                                 NaN
3  9200211539; 9200239899; 9519012568

In [155]: df["phone"] = ("8" + df["phone"].dropna().str.split(";\s*").explode()).groupby(level=0).apply(lambda x: "; ".join(x))

In [156]: df
Out[156]:
                                   phone
0  88312333666; 89101054581; 88312617706
1                            89307167823
2                                    NaN
3  89200211539; 89200239899; 89519012568
→ Ссылка