将所有内容提取到熊猫数据框中某个字符的第2次出现的左侧

时间:2020-09-20 11:56:04

标签: python pandas dataframe

我有以下数据框列:

df: 
     Text
0 J Smith abc def
1 T Smith hij klm
2 A Smith xy z

我希望将第二个空格之前的所有内容提取为新列:

预期输出:

    Text               Name
0 J Smith abc def       J Smith
1 T Smith hij klm       T Smith
2 A Smith xy z          A Smith

我尝试了以下操作(Text中的某些项目可能为空白,因此为if语句)

df['Name'] = df.Text.apply(lambda x: x.split(" ")[0:1]  if len(x) >0 else 0 )

但是没有这种运气。关于如何使它正常工作的任何想法?

1 个答案:

答案 0 :(得分:2)

使用Series.str.split,然后使用str[:2]从列表中获取前2个元素,然后将字符串与str.join一起返回:

df["Name"] = df["Text"].str.split(" ").str[:2].str.join(" ")

              Text     Name
0  J Smith abc def  J Smith
1  T Smith hij klm  T Smith
2     A Smith xy z  A Smith