2016-08-18 151 views
0

不同長度我有這樣一個變量:獲取逗號後第一個單詞的一個字符串在Python

**Name** 
Heikkinen, Miss. Laina 
Futrelle, Mrs. Jacques Heath (Lily May Peel) 
Allen, Mr. William Henry 
... 

我想提取逗號後的第一個字。

這對我的作品,但它需要2個數據幀步驟:

train_df1=train_df['Name'].str.split(',',expand=True) 
train_df2=train_df1[1].str.split(' ',expand=True)[1] 

train_df包含變量「名稱」

+0

可以使用正則表達式? –

+0

所以你試圖從你的文本樣本中得到'Miss','Mrs'和'Mr'? – Frodon

+0

@Frodon。是的,我想提取稱呼 – muni

回答

1

您可以使用正則表達式來得到這個。

import re 
s="Heikkinen, Miss. Laina" 
re.findall(r'(?<=,\s)[a-z]+',s,re.I) 

如果字符串的格式是一致的(字後跟一個,後跟一個空格,隨後空格分隔單詞),使用

[i for i in s.split()][1] 
+0

謝謝,你可以請建議一個更簡單的解決方案? – muni

+0

如何在dataframe上應用這個:我試過了,但似乎沒有工作:x = train_df ['Name'] [i for i in s.split()] [1] – muni

+0

'x = [i for i in train_df ['Name']。str.split()] [1]'? – Frodon

0

使用str.partitionstr.split

s = 'Heikkinen, Miss. Laina' 
s.partition(',')[-1].split()[0] # 'Miss.' 
+0

您可以請網站上的數據框示例嗎? – muni

0

只是爲了在一個班輪添加假設你的字符串由換行符分離,第一行是某種形式的標題:

salutations = [x.split(", ")[1].split(".")[0] for x in string.split("\n")[1:]] 

只是,如果你不想做正則表達式溶液

0

I = str.index( 「」) =中newstr STR [I:]

相關問題