#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] и это сработало!