[英]Extract words from the text by index into a new column Pandas Python
[英]Extract first and last words from strings as a new column in pandas
我正在努力根据另一列中的字符串创建两个新列。
我有的
Profile
0 Technician
1 Service Engineer
2 Sales and Service Support Engineer
我想要拥有的
First Last
0 Technician NaN
1 Service Engineer
2 Sales Engineer
我的尝试是使用类似的解决方案
new = tl['Profile'].str.split(' ')
tl['First'] = new[0]
tl['Last'] = new[1]
但这仅对First是正确的。
让我们在这里尝试str.extract
:
df['Profile'].str.extract(r'^(?P<First>\S+).*?(?P<Last>\S+)?$')
First Last
0 Technician NaN
1 Service Engineer
2 Sales Engineer
由于仅需要处理一个单词的句子,因此没有太多的str
方法会如此优雅。
您也可以在这里使用str.partition
。
u = df['Profile'].str.partition()
pd.DataFrame({'First': u[0], 'Last': u[2].str.split().str[-1]})
First Last
0 Technician NaN
1 Service Engineer
2 Sales Engineer
没有正则表达式,使用循环
姓氏
k=[]
for i in df_names_test['Name']:
h=len(i.split(" "))
j=i.split(" ")[h-1]
k.append(j)
df_names_test["Last"]=k
名字
k=[]
for i in df_names_test['Name']:
j=i.split(" ")[0]
k.append(j)
df_names_test["First"]=k
使用Lambda函数:名字
df_names_test['First']=df_names_test['Name'].apply(lambda x: x.split(" ")[0])
姓:
df_names_test['Last']=df_names_test['Name'].apply(lambda x: x.split(" ")[-1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.