通过熊猫用户名选择行

时间:2018-12-07 23:01:52

标签: python excel python-3.x pandas python-2.7

我有一个包含多个用户的表以及属于他们的数据。 enter image description here

现在,我要像这样为每个用户创建单独的表:

enter image description here

属于用户的每个帐户都有一个不同的ID,因此我无法使用该ID进行选择。

如何在“用户”行中选择属于一个特定名称的所有行,然后创建单独的表?

我也想从一列中取出数据并将其分类为两个新列。

一个例子是类似电子邮件的东西: John.tomson@email.com并在点处将其拆分,并创建两个新的列“名称”和“姓氏”。 enter image description here

1 个答案:

答案 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