现在,我要像这样为每个用户创建单独的表:
属于用户的每个帐户都有一个不同的ID,因此我无法使用该ID进行选择。
如何在“用户”行中选择属于一个特定名称的所有行,然后创建单独的表?
我也想从一列中取出数据并将其分类为两个新列。
一个例子是类似电子邮件的东西: John.tomson@email.com并在点处将其拆分,并创建两个新的列“名称”和“姓氏”。
答案 0 :(得分:1)
失望 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