2016-12-15 8 views
0

私は単純なWebスクレイプ、DataFrameプロジェクトに取り組んでいます。私はシンプルな8x1 DataFrameを持っており、8x2 DataFrameに分割しようとしています。今のところ、これは私のデータフレームは、次のようになります。パンダのDataFrame列を2つの列に分割する

dframe = DataFrame(data, columns=['Active NPGL Teams'], index=[1, 2, 3, 4, 5, 6, 7, 8]) 
Active NPGL Teams 
1 Baltimore Anthem (2015–present) 
2 Boston Iron (2014–present) 
3 DC Brawlers (2014–present) 
4 Los Angeles Reign (2014–present) 
5 Miami Surge (2014–present) 
6 New York Rhinos (2014–present) 
7 Phoenix Rise (2014–present) 
8 San Francisco Fire (2014–present) 

私は、列を追加する「アクティブ年を」好き「(2014年〜現在)」、「(2015年〜現在)」を分割します"Years Active"欄に入力してください。データを分割するにはどうすればいいですか?

答えて

2

あなたは、キーは、それが開いた括弧(先読みアサーション)が続いている場合にのみ、スペースにマッチする正規表現r' (?=\()'ある

dframe['Active NPGL Teams'].str.split(r' (?=\()', expand=True) 
    0    1 
1 Baltimore Anthem (2015–present) 
2   Boston Iron (2014–present) 
3   DC Brawlers (2014–present) 
4 Los Angeles Reign (2014–present) 
5   Miami Surge (2014–present) 
6  New York Rhinos (2014–present) 
7  Phoenix Rise (2014–present) 
8 San Francisco Fire (2014–present) 

を使用することができます。 (約5%遅くなるが、より柔軟性がある)


別のアプローチは、ユーザSeries.str.extractです。

dframe['Active NPGL Teams'].str.extract(r'^(?P<Team>.+) (?P<YearsActive>\(.+\))$', 
             expand=True) 
    Team  YearsActive 
1 Baltimore Anthem (2015–present) 
2   Boston Iron (2014–present) 
3   DC Brawlers (2014–present) 
4 Los Angeles Reign (2014–present) 
5   Miami Surge (2014–present) 
6  New York Rhinos (2014–present) 
7  Phoenix Rise (2014–present) 
8 San Francisco Fire (2014–present) 
+0

愛、この!素晴らしい! :)この「パンダ」機能についてまだ知りませんでした。 – quapka

+0

ありがとうございました!私は決してそれを考え出しませんでした。 –

関連する問題