同时删除数据帧中的双空格和单空格

时间:2019-06-03 10:11:35

标签: pandas

我有一列,其中名称用单空格,双空格(可以有更多)分隔,我想按“拳头名称”和“姓氏”分割名称

df = pd.DataFrame({'Name': ['Steve  Smith', 'Joe Nadal', 
                           'Roger   Federer'],{'Age':[32,34,36]})

df['Name'] = df['Name'].str.strip()


df[['First_Name', 'Last_Name']] = df['Name'].str.split(" ",expand = True,)

2 个答案:

答案 0 :(得分:1)

这应该做到

 df[['First_Name', 'Last_Name']] =  df.Name.apply(lambda x: pd.Series(list((filter(None, x.split(' '))))))

答案 1 :(得分:1)

使用\s+作为拆分模式。这是正则表达式模式,表示“一个或多个空格字符”

此外,用n=1限制拆分次数。这意味着该字符串只会被分割一次(第一次出现空白,从左到右)-将输出限制为2列。

df[['First_Name', 'Last_Name']] = df.Name.str.split('\s+', expand=True, n=1)

[出]

              Name  Age First_Name Last_Name
0     Steve  Smith   32      Steve     Smith
1        Joe Nadal   34        Joe     Nadal
2  Roger   Federer   36      Roger   Federer