2017-11-17 10 views
0

私は、文字列の一部だけをハイフンの左側に置いて省略したいというコラムmarket_areaを持っています。例えば、私のデータは次のように(Python、Pandas) - 特定の文字の左側にあるすべてのものを取得するにはどうすればよいですか?

されています:

import pandas as pd 
tmp = pd.DataFrame({'market_area': ['San Francisco-Oakland-San Jose', 
            None, 
            'Dallas-Fort Worth', 
            'Los Angeles-Riverside-Orange County'], 
        'val': [1,2,3,4]}) 

私の所望の出力は次のようになります。

['San Francisco', None, 'Dallas', 'Los Angeles'] 

私はハイフンに基づいて分割することができる午前:

tmp['market_area'].str.split('-') 

しかし、ハイフンの左側の部分だけをどのように抽出するのですか?

答えて

2

あなたは.str[0]を使用して分割さリストの最初の要素を抽出することができます。

tmp.market_area.str.split('-').str[0] 
Out[3]: 
0 San Francisco 
1    None 
2   Dallas 
3  Los Angeles 
Name: market_area, dtype: object 

それとも最初-までのパターンをキャプチャする正規表現^([^-]*).*、とstr.extractメソッドを使用します。

tmp.market_area.str.extract('^([^-]*).*', expand=False) 
Out[5]: 
0 San Francisco 
1    NaN 
2   Dallas 
3  Los Angeles 
Name: market_area, dtype: object 
関連する問題