2016-07-30 15 views
2

私は2つのカラム1とのデータフレームを持っているがDateであり、もう一つは下記、Location(Object)データ型である値を持つ場所の列の形式である:Python:データフレーム内で文字列を分割する方法は?

Date           Location 
1  07/12/1912       AtlantiCity, New Jersey 
2  08/06/1913     Victoria, British Columbia, Canada 
3  09/09/1913         Over the North Sea 
4  10/17/1913       Near Johannisthal, Germany 
5  03/05/1915         Tienen, Belgium 
6  09/03/1915        Off Cuxhaven, Germany 
7  07/28/1916        Near Jambol, Bulgeria 
8  09/24/1916        Billericay, England 
9  10/01/1916        Potters Bar, England 
10 11/21/1916          Mainz, Germany 

私の要件は","セパレータで場所を分割し、唯一維持することです場所の列にある(ex. New Jersey, Canada, Germany, England etc..)の2番目の部分です。私はまた、その単一の要素( "、"を持たない単一の要素を持つ値)をチェックする必要があります

私はそれぞれの行をループせずに事前定義された方法で行うことができますか?

申し訳ありませんが、私はPythonの初心者で、まだ学習しているので、質問は標準から外れています。

答えて

2

まっすぐ進むべき道は、列の各要素にsplit方法をapply、最後の1を拾うことです:

df.Location.apply(lambda x: x.split(",")[-1]) 

1    New Jersey 
2     Canada 
3  Over the North Sea 
4    Germany 
5    Belgium 
6    Germany 
7    Bulgeria 
8    England 
9    England 
10    Germany 
Name: Location, dtype: object 

各セルは、我々は上str.containsメソッドを使用することができる唯一の一つの要素を持っているかどうかを確認するにはコラム:

df.Location.str.contains(",") 

1  True 
2  True 
3  False 
4  True 
5  True 
6  True 
7  True 
8  True 
9  True 
10  True 
Name: Location, dtype: bool 
1

我々はstr.extract

print(df['Location'].str.extract(r'([^,]+$)'))  
#0   New Jersey 
#1    Canada 
#2 Over the North Sea 
#3    Germany 
#4    Belgium 
#5    Germany 
#6    Bulgeria 
#7    England 
#8    England 
#9    Germany 
と試みることができます
関連する問題