现在我想为每个用户创建单独的表,如下所示:
属于用户的每个帐户都有不同的 ID,因此我无法使用 ID 进行选择。
如何选择“用户”行中属于某个特定名称的所有行,然后创建单独的表?
此外,我想从列中取出数据并将其排序到两个新列中。
一个例子是这样的电子邮件: John.tomson@email.com 并将其在点处拆分并创建两个新列“姓名”和“姓氏”。
最佳答案
分割 用户
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_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
关于python - 使用 Pandas 按用户名选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53677857/