Google Sheets проверка значений по двум спискам
Есть две таблицы:
Phone1
88312333666; 89101054581; 88312617706
89307167823
89307167823
89200211539; 89200239899; 89519012568
89108917638
89108917638
89063661063
89063661063
И таблица:
Phone2
89101054581
88312617706
89307167823
89040324355
89519012568
89200239899
89067894657
89108917638
В столбце Phone1 в каждой ячейке может содержаться до 30 номеров через знак ";".
Нужно проверить каждое значение ячейки в столбце Phone1 со значениями в столбце Phone2, при этом должна получится вот такая табличка:
N Phone1 Phone2
1 88312333666; 89101054581; 88312617706 89101054581
88312617706
2 89307167823 89307167823
3 89200211539; 89200239899; 89519012568 89200239899
89519012568
4 89108917638 89108917638
Просто сравнить ячейку с ячейкой - понятно, а как в данном случае сделать?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
res = t2.assign(phone=t2["Phone2"].astype(str)).merge(t1.assign(phone=t1["Phone1"].str.split(r";\s*")).explode("phone"), how="left").drop(columns="phone")
результат:
In [382]: res
Out[382]:
Phone2 Phone1
0 89101054581 88312333666; 89101054581; 88312617706
1 88312617706 88312333666; 89101054581; 88312617706
2 89307167823 89307167823
3 89307167823 89307167823
4 89040324355 NaN
5 89519012568 89200211539; 89200239899; 89519012568
6 89200239899 89200211539; 89200239899; 89519012568
7 89067894657 NaN
8 89108917638 89108917638
9 89108917638 89108917638