Разбивка на User
df.groupby('User').get_group('John')
ID User Email
0 1 John john.tomson@email.com
1 2 John john.tomson@email.com
2 3 John john.tomson@email.com
Может также выполняться в цикле
grp = df.groupby('User')
for group in grp.groups:
print(grp.get_group(group))
Email ID User
3 david.matty@email.com 4 David
4 david.matty@email.com 5 David
Email ID User
5 fred.brainy@email.com 6 Fred
Email ID User
0 john.tomson@email.com 1 John
1 john.tomson@email.com 2 John
2 john.tomson@email.com 3 John
Разделение столбца Email
email_df = df['Email'].str.split(r'(.+)\.(.+)@', expand=True)]
pd.concat([df, email_df], axis=1)
Email ID User 0 1 2
0 john.tomson@email.com 1 John john tomson email.com
1 john.tomson@email.com 2 John john tomson email.com
2 john.tomson@email.com 3 John john tomson email.com
3 david.matty@email.com 4 David david matty email.com
4 david.matty@email.com 5 David david matty email.com
5 fred.brainy@email.com 6 Fred fred brainy email.com