我有以下数据框列:
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 )
但是没有这种运气。关于如何使它正常工作的任何想法?
答案 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