2016-06-22 5 views
1

私はいくつかのアドレスを整理するためにパンダの文字列の列から文字を削除しようとしていますが、仕事をするための最良の正規表現を探すのに苦労しています。Pandasの正規表現で苦労しています

テキストの一般的なフォーマットのようなものです:

1/BAA Temporary Building, Land Opposite Park 
3/BAC Methodist Church Hall, Park Drive, Bar 
4/BSA St Annes Church Hall , Lynton Avenue 

そして、私の命令:

df.address.str.replace(r"\d+/[A-Z]{3}", "") 

これは、ほとんどの場合のために働くが、のような場合のために空白を返します。

2/BAB, BAD Barlaston Village Hall, Longton R 

または

6/BSC, BSD Holy Trinity Church Hall 

余分な3文字の要素を取り上げるには、オプションの引数を指定するにはどうすればよいですか?

+1

なるこのDO: 'df.address.str.replace(R"^[0-9] + [/] [AZ] {3}([AZ] { 3})* "、" ")'? – LukStorms

答えて

2

この試す:

df['cut'] = df.address.str.replace(r"\d+ \/ [A-Z]{3}", "").str.replace(r'^,\s+[A-Z]{3}', '') 

In [210]: df 
Out[210]: 
              address          cut 
0 1/BAA Temporary Building, Land Opposite Park Temporary Building, Land Opposite Park 
1 2/BAB, BAD Barlaston Village Hall, Longton R  Barlaston Village Hall, Longton R 
2 3/BAC Methodist Church Hall, Park Drive, Bar Methodist Church Hall, Park Drive, Bar 
3 4/BSA St Annes Church Hall , Lynton Avenue  St Annes Church Hall , Lynton Avenue 
4   6/BSC, BSD Holy Trinity Church Hall     Holy Trinity Church Hall 
+0

それは素晴らしいです。ありがとうございました。私は、あなたがstr.accessorメソッドを連鎖させることができるとは思わなかった。 – elksie5000

関連する問題