拆分列

时间:2018-02-18 15:33:32

标签: python pandas dataframe

我下面有一个假数据框,并尝试操纵“联系人”列。有些人只有电话号码,有些人只有电子邮件,有些人同时有号码和电子邮件,中间有空格。

所以,我想创建另外两列('gender'和'email')并将联系人列拆分为3列。 ('性别' - (M)为男性,(F)为女性,'phone_number'和'电子邮件')

我试过

SELECT radius 
FROM 
ST_MinimumBoundingRadius('MULTIPOINT(1 2,3 8,5 6)')

但我失败了,因为有时它在(F)和之后的电话号码之间有一个空格。

SELECT radius 
FROM
(SELECT
ST_MinimumBoundingRadius(ST_Collect(geom)) minrad
FROM a) b

谢谢。

1 个答案:

答案 0 :(得分:3)

试试这个正则表达式,

df[['gender','phone_number','email']]=df['Contact'].str.\
extract('\(([A-Z])\)\s?(\d{3}-\d{3}-\d{4})?\s?(.*)', expand = False)
df.drop('Contact', axis = 1, inplace = True)


    EmployeeID  FirstName   LastName    MiddleName  gender  phone_number    email
0   0           a           a           a           M       133-245-3123    
1   1           b           b           b           F       NaN             a123@gmail.com
2   2           c           c           None        F       312-533-2442    jimmy234@gmail.com