Want to get email using pandas

Question:

import pandas as pd
df=pd.read_html('http://www.advpalata28.ru/reestr/reestr-advokatov/')

df[0].to_excel("link14.xlsx",encoding='utf-8')

I want to get email only from these text these is page link http://www.advpalata28.ru/reestr/reestr-advokatov/:

676740, Амурская обл, Архара пгт, Ленина ул, 76 E-mail: [email protected]
Asked By: Amen Aziz

||

Answers:

You can split by E-mail: in Адрес места работы column

df['Email'] = df['Адрес места работы'].str.split('E-mail: ').str[1]
Answered By: Ynjxsjmh

The TypeError comes from:

df=pd.read_html('http://www.advpalata28.ru/reestr/reestr-advokatov/')

Which returns a list of DataFrames instead of a DataFrame as you expected. The list only contains one DataFrame so using the following code should work:

import pandas as pd

df=pd.read_html('http://www.advpalata28.ru/reestr/reestr-advokatov/')
df = df[0]
df['Email'] = df[5].str.split('E-mail: ').str[1]

df.to_excel("link14.xlsx",encoding='utf-8')
Answered By: Xeltoid

A proper solution would be based on regex – extracting the email addresses and placing them in a new column. The following code is extracting email addresses, and also creating a csv file with the results:

import pandas as pd
import re

dfs = pd.read_html('http://www.advpalata28.ru/reestr/reestr-advokatov/')
df = dfs[0]
new_header = df.iloc[0]
df = df[1:]
df.columns = new_header
df['email'] = df.apply( lambda row: ''.join(re.findall("([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+)", str(row['Адрес места работы']))), axis=1)
df.to_csv('email_addresses.csv')
print(df.head())

Result:

    № п/п   Ф.И.О., № удостоверения Удостоверение   Рег. №  Место работы    Адрес места работы  Телефон email
1   NaN Архаринский р-н NaN NaN NaN NaN NaN 
2   1   Корякина Елена Николаевна   №615 от 10.03.16    28/527  Адвокатский кабинет 676740, Амурская обл, Архара пгт, Ленина ул, 7...   м. 89638027570  [email protected]
3   2   Матвейко Марина Валентиновна    №616 от 10.03.16    28/528  Адвокатский кабинет 675000, Амурская обл, Архара пгт, Ленина ул, 9...   м.89622949042   [email protected]
4   3   Руднев Анатолий Леонтьевич  №335 от 17.06.05    28/324  Адвокатский кабинет 676740, Амурская обл, Архара пгт, Калинина ул,...   м.89622949506   [email protected]
5   NaN Белогорск   NaN NaN NaN NaN NaN