我的 CSV 文件有一些电子邮件地址。其中一些地址不完整。如何使用 python 使它们完全可识别?

my CSV file have some email addresses. Some of them have incomplete address. How do I make them fully recognizable using python?

我是 python 的数据科学初学者。 我正在处理一个数据集,我必须在其中执行以下任务: 使用 Python petl:

a.清理clinics.csv中的数据。这涉及使用 python 和 Regex 来 标准化电子邮件地址,以便它们可用作 html link 和

b.将合并和清理后的数据输出到CSV文件中,名称为 clinic_locations.csv.

所以,到目前为止,我能够处理一部分点 (b),即我已经很容易地从 xml 文件中提取数据并将其组合与 csv 文件。 但问题是

我无法清理 CSV 文件的数据

这是我的 CSV 文件:

ID  Name    Suburb  State   Postcode    Email
1   Hurstville Clinic   Hurstville  NSW 1493    hurstville
2   Sydney Centre Clinic    Sydney  NSW 2000    sydney@myclinic.com.au
3   Auburn Clinic   Auburn  NSW 2144    auburn@myclinic.com.au
4   Riverwood Clinic    Riverwood   NSW 2210    riverwood@myclinic.com.au

如您所见,电子邮件列中的数据不完整,整个 link 无法使用。 谁能帮助我从头开始。

更新: 我得到的输出是

   ID                     Name       Suburb State  Postcode  \
0   1        Hurstville Clinic   Hurstville   NSW      1493
1   2     Sydney Centre Clinic       Sydney   NSW      2000
2   3            Auburn Clinic       Auburn   NSW      2144
3   4         Riverwood Clinic    Riverwood   NSW      2210
4   5        Fingal Bay Clinic   Fingal Bay   NSW      2315
5   6        Harrington Clinic   Harrington   NSW      2427
6   7       Back Forest Clinic  Back Forest   NSW      2535
7   8         Jindabyne Clinic    Jindabyne   NSW      2627
8   9          Benolong Clinic     Benolong   NSW      2830
9  10  Melbourne Centre Clinic    Melbourne   VIC      3000

                         Email
0   hurstville@myclinic.com.au
1       sydney@myclinic.com.au
2       auburn@myclinic.com.au
3    riverwood@myclinic.com.au
4   fingal bay@myclinic.com.au
5   harrington@myclinic.com.au
6  back forest@myclinic.com.au
7   jindabyne @myclinic.com.au
8     benolong@myclinic.com.au
9    melbourne@myclinic.com.au

假设您的所有电子邮件 ID 都具有相似的域,我希望这会有所帮助:

import pandas as pd

df=pd.read_csv("clinic_locations.csv")  #Provide complete path to your file

df['Email']=df['Email'].apply(lambda x: x if '@' in str(x) else str(x)+'@myclinic.com.au')

#To see data frame
print(df.head(10))