2016-08-18 7 views
0

で長さを変化させると、文字列にカンマの後の最初の単語を取得します。は、私はこのような変数を持っているのPython

これは私のために動作しますが、それは2つのデータフレームの処理を実行します。

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

train_dfは、あなたがこれを取得するために正規表現を使用することができ、変数「名前」

+0

あなたは正規表現を使用することができますか? –

+0

あなたはテキストサンプルから 'ミス'、 'ミセス'と 'ミスター'を取得しようとしますか? – Frodon

+0

@フロドン。はい私は挨拶を抽出したい – muni

答えて

1

が含まれています。

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

ストリングのフォーマットが一致している場合(単語が空白で区切られた単語に続く空間続い,が続く)、str.partitionstr.splitを使用

+0

ありがとう、より簡単なソリューションをお勧めしますか? – muni

+0

これをデータフレームに適用するにはどうすればよいですか?これを試しましたが、うまくいかないようです:x = train_df ['Name'] [i for s.split()] [1] – muni

+0

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

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

を使用します。

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

データフレームの例をサイトに掲載してください。 – muni

0

ちょうどあなたの文字列が改行文字で区切られていると仮定し、最初の行はいくつかの種類のヘッダである1つのライナーに追加する:

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

あなたが行うにはしたくないだけならば正規表現のソリューション

0

I = str.index( "") NewStrによってすでに= strの[I:]

関連する問題