Python pandasで文字列を区切り文字や正規表現で複数の列に分割する方法

Pythonのpandasライブラリを使って、文字列を区切り文字や正規表現を利用して複数の列に分割する方法を解説します。

Pythonで文字列を複数の列に分割するにはどうすればできますか?

Pythonのpandasを使うと、文字列を区切り文字や正規表現を使って簡単に複数の列に分割できますよ。

目次

区切り文字を使った文字列の分割

区切り文字を使った文字列の分割では、pandasのstr.split()メソッドを活用します。

以下に手順を詳しく解説します。

  1. pandasのライブラリをインポートします。
  2. 分割対象となる文字列を含んだデータフレームを作成します。
  3. 区切り文字を指定して文字列を分割します。str.split()メソッドを使用し、expand=Trueを指定することで、分割後の結果を新たな列として追加します。
import pandas as pd

data = {'text': ['apple,banana,orange', 'dog,cat', 'red:green:blue']}
df = pd.DataFrame(data)
df[['col1', 'col2', 'col3']] = df['text'].str.split(',', expand=True)

print(df)

上記の例では、カンマを区切り文字として使用していますが、実際のデータに合わせて適切な区切り文字を指定してください。

                  text            col1    col2    col3
0  apple,banana,orange           apple  banana  orange
1              dog,cat             dog     cat    None
2       red:green:blue  red:green:blue    None    None

元のテキスト列がcol1col2col3の3つの列に分割されました。区切り文字の数に応じて列の数が増減することになります。

このように、str.split()メソッドを使って区切り文字を指定して文字列を分割することで、データの整理や特定のカラムへの分割が容易に行えます。

正規表現を使った文字列の分割

正規表現を使った文字列の分割では、pandasのstr.extract()メソッドを活用します。

以下に手順を詳しく解説します。

  1. pandasのライブラリをインポートします。
  2. 分割対象となる文字列を含んだデータフレームを作成します。
  3. 正規表現パターンを指定して文字列を分割します。str.extract()メソッドを使用し、正規表現パターンを引数として渡します。分割後の結果は、正規表現のグループにマッチした部分が新たな列として追加されます。
  4. 分割後のデータフレームを表示します。

上記の例では、正規表現パターン(\w+)(\d+)(\w+)を使用しています。このパターンでは、文字列をアルファベット部分と数字部分に分割しています。実際のデータに合わせて適切な正規表現パターンを指定してください。

                text             col1 col2  col3
0  apple123banana456  apple123banana4    5     6
1          dog789cat            dog78    9   cat
2     red1green2blue        red1green    2  blue

元のテキスト列が正規表現パターンにマッチした部分がcol1col2col3の列に分割されました。正規表現のグループごとに列が追加されます。

このように、str.extract()メソッドを使って正規表現を利用して文字列を分割することで、柔軟な分割が可能となります。

サンプルプログラムを使って解説

サンプルプログラムを使って、区切り文字や正規表現を使った文字列の分割方法を解説します。

import pandas as pd

# 分割対象の文字列を含んだデータフレームを作成
data = {'text': ['apple,banana,orange', 'dog,cat', 'red:green:blue']}
df = pd.DataFrame(data)

# 区切り文字を使った文字列の分割
df[['col1', 'col2', 'col3']] = df['text'].str.split(',', expand=True)

# 正規表現を使った文字列の分割
df[['col1', 'col2', 'col3']] = df['text'].str.extract(r'(\w+):(\w+):(\w+)')

# 分割後のデータフレームを表示
print(df)

このサンプルプログラムでは、pandasのstr.split()メソッドとstr.extract()メソッドを使って文字列を分割しています。

str.split()メソッドでは、区切り文字を指定して文字列を分割しています。expand=Trueを指定することで、分割結果を新たな列としてデータフレームに追加します。

str.extract()メソッドでは、正規表現パターンを指定して文字列を分割しています。正規表現パターン内のグループにマッチした部分が、新たな列としてデータフレームに追加されます。

このサンプルプログラムを実行すると、分割後のデータフレームが表示されます。それぞれの分割方法に応じた結果が、col1col2col3の列に格納されています。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

まとめ

Pythonのpandasライブラリを使って、文字列を区切り文字や正規表現を利用して複数の列に分割する方法を解説しました。

  • str.split()メソッドを使うと、区切り文字を指定して文字列を分割できる。
  • str.extract()メソッドを使うと、正規表現を利用して文字列を分割できる。

区切り文字や正規表現を使って文字列を簡単に複数の列に分割できることがわかりました。ありがとうございます!

分割の際に適切な区切り文字や正規表現パターンを選ぶことが重要です。

データの特徴や分析の目的に合わせて最適な方法を選びましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次