

Pythonデータ前処理に関して質問させていただきたきます。

求人内容のデータ分析をしており、添付1枚目のDataFrameにてまずは前処理段階で  
添付2枚目の['position']列の文字列データを確認したところ構成が求人名(詳細内容や勤務地)などまとまってしまっているデータが多数あり、取り急ぎやりたいこととしては

求人名と()の内容を分割して()の内容は一旦別の列として抽出する作業なのですが、splitを使って分割した先の

  1. 繰り返し処理と、()が入ってないデータに関してスキップをかける処理
  2. 処理後に新たな列として()内データの抽出作業

ができず躓いてしまっております。  
調べてはいるものの中々うまくいかずご情報いただけると幸いです。

分割時のコード

[code]

    s = 'サーバサイドエンジニア(開発チーム リーダー候補)'
    
    sep = '('
    t = s.split(sep)  # 半角空白文字で文字列を分割
    
    r = t[0]  # 　サーバサイドエンジニア　求人内容はインデックス0に含まれている
    print(r)  # （特定の文字より前を抽出＝特定の文字以降を削除）
    
    r = t[1]  # 詳細はインデックス1に含まれている
    print(r)  # 開発チーム リーダー候補)（特定の文字より後ろを抽出＝特定の文字までを削除）
    
[/code]

出力結果：

[code]

    サーバサイドエンジニア
    開発チーム リーダー候補)
    
[/code]

**データフレーム:**

[![データフレーム](https://i.stack.imgur.com/knjYf.png)](https://i.stack.imgur.com/knjYf.png)

**求人内容:**  
[![求人内容](https://i.stack.imgur.com/Tmauk.png)](https://i.stack.imgur.com/Tmauk.png)


CC BY-SA 4.0
2021-08-22T04:57:22.967
80962
2021-08-22T05:41:34.210
2021-08-22T05:28:15.223
3060
47685
question
python pandas
Python データ前処理 文字列データの切り出しや抽出に関して


以下は
[pandas.Series.str.extract](https://pandas.pydata.org/docs/reference/api/pandas.Series.str.extract.html#pandas-
series-str-extract) を使う方法です。

[code]

    import pandas as pd
    
    train_data1 = pd.read_csv('train_data1.csv')
    
    splitted = train_data1['position'].str.extract(r'^\s*(.+?)(\((.*?)\))?\s*$').fillna('')
    train_data1['position'] = splitted[0]
    train_data1.insert(2, 'position2', splitted[2])
    
[/code]

**train_data1**

company_id | position | framework_skillset | language_skillset  
---|---|---|---  
1 | サーバサイドエンジニア(開発チームリーダー候補) | CakePHP/jQuery | JavaScript  
2 | プログラマ | nan | Java/C/VB  
3 | サーバサイドエンジニア | CodeIgnighter/Ruby on Rails | Go/PHP/Ruby  
4 | バックエンドエンジニア(大阪) | FuelPHP/jQuery/Vue.js | PHP/Javascript  
5 | PL/PM | nan | Java/C/C++  
6 | Web開発エンジニア(フロントエンド) | Vue.js/Laravel/jQuery | JavaScript/HTML5+CSS3  
  
`position` 列の右側に `position2` として挿入しています。また、`(...)` 部分が無いレコードの場合は空白(`""`)になります。

company_id | position | position2 | framework_skillset | language_skillset  
---|---|---|---|---  
1 | サーバサイドエンジニア | 開発チームリーダー候補 | CakePHP/jQuery | JavaScript  
2 | プログラマ |  | nan | Java/C/VB  
3 | サーバサイドエンジニア |  | CodeIgnighter/Ruby on Rails | Go/PHP/Ruby  
4 | バックエンドエンジニア | 大阪 | FuelPHP/jQuery/Vue.js | PHP/Javascript  
5 | PL/PM |  | nan | Java/C/C++  
6 | Web開発エンジニア | フロントエンド | Vue.js/Laravel/jQuery | JavaScript/HTML5+CSS3


CC BY-SA 4.0
2021-08-22T05:41:34.210
80963
2021-08-22T05:41:34.210
47127
80962
answer