Как извлечь часть домена из столбца адреса электронной почты в Python без .com

#python-3.x #pandas #email

Вопрос:

У меня есть столбец, помеченный как электронная почта в моем наборе данных, и я пытался использовать df['email'].str.split('@').str[1] его, но он дает мне 'gmail.com' , и я хочу, чтобы в качестве вывода был Gmail. Кто-нибудь может помочь, пожалуйста?

Комментарии:

1. Добавьте вторую split('.')

Ответ №1:

Вы можете попробовать разделить это снова на».», а затем, например, выбрать часть домена:

 email = "example@domain.com" domain_name = email.split('@')[1].split('.')[0] #This will be "domain"  

Комментарии:

1. Спасибо @Mahan. Я попробовал (df[’email’].str.split(‘@’).str[1]).str.rsplit(‘.’).str[0] и это сработало!

Ответ №2:

Если вам нужна часть Gmail, вы можете разделить раздел, который вы делаете. Что-то вроде df['email'].str.split('@').str[1].split(".")[0]

Комментарии:

1. Спасибо @mrjamaisvu. Я попробовал (df[’email’].str.разделить(‘@’).str[1]).str.rsplit(‘.’).str[0] и это сработало!

Ответ №3:

IIUC вы хотите получить первую часть домена?

Вы также можете использовать регулярное выражение:

 df['email'].str.extract(r'(?lt;=@)([^.] )')  

Если вам нужны все поддомены, кроме домена верхнего уровня ( abc.def in abc.def.com ):

 df['email'].str.extract(r'(?lt;=@)(. ).w ')  

Комментарии:

1. Спасибо @mozway. Я попробовал (df[’email’].str.split(‘@’).str[1]).str.rsplit(‘.’).str[0] и это сработало!