データ分析やデータ処理の際、Pandasは非常に便利なツールです。しかし、与えられたデータの中から数字だけを抽出したいことがあります。本記事では、Pandasを使用してデータから数字だけを抽出する方法について詳しく説明します。
Pandasを使ってデータを読み込む方法
Pandasを使ってデータから数字を抽出する前に、まずデータを読み込む方法を紹介します。通常、CSVファイルやExcelファイルからデータを読み込むことがあります。以下のコードを使用して、データを読み込むことができます。
import pandas as pd # CSVファイルからデータを読み込む例 data = pd.read_csv('data.csv') # Excelファイルからデータを読み込む例 data = pd.read_excel('data.xlsx')
データを読み込んだら、次に数字だけを抽出する方法を見ていきましょう。
数字だけを含む列を抽出する方法
データフレームから数字だけを含む列を抽出するには、select_dtypes()
メソッドを使用します。以下のコードは、数値列のみを含む新しいデータフレームを作成する例です。
# 数値列のみを含むデータフレームを作成 numeric_data = data.select_dtypes(include=['number'])
このようにして、元のデータから数値列のみを含む新しいデータフレームを作成できます。
文字列中の数字だけを抽出する方法
データの中には、文字列に数字が含まれている場合があります。これらの数字を抽出するには、正規表現を使用する方法が便利です。以下のコードは、文字列から数字の部分を抽出する例です。
import re # 文字列から数字を抽出する関数 def numeric_conversion(text): numbers = re.findall(r'\d+', text) return ''.join(numbers) # データフレームの特定の列から数字を抽出 data['text_column'] = data['text_column'].apply(numeric_conversion)
このコードでは、numeric_conversion()
関数を定義し、re.findall()
メソッドを使用して文字列から数字を抽出します。そして、apply()
メソッドを使用して特定の列にこの関数を適用します。
正規表現を用いて複雑なパターンの数字を抽出する方法
正規表現を使用すると、複雑なパターンの数字を抽出することができます。たとえば、日付や通貨の金額を含む文字列から数字を抽出したい場合、以下のようなコードを使用できます。
# 日付や通貨の金額を含む文字列から数字を抽出する正規表現パターン pattern = r'(\d{1,2}/\d{1,2}/\d{4})|(\$[\d,]+(\.\d{2})?)' # データフレームの特定の列から正規表現パターンにマッチする部分を抽出 data1 = data['text_column'].str.extract(pattern, expand=False)
このコードでは、str.extract()
メソッドを使用して正規表現パターンにマッチする部分を抽出します。正規表現パターンは、抽出したいパターンに合わせて調整できます。
抽出した数字を新しい列として追加する方法
抽出した数字を新しい列としてデータフレームに追加することもできます。以下のコードは、抽出した数字を新しい列として追加する例です。
# 数字を新しい列として追加 data['extracted_numbers'] = data['text_column'].apply(numeric_conversion)
このコードでは、numeric_conversion()
関数を使用して数字を抽出し、新しい列として追加しています。
まとめ
本記事では、Pandasを使用してデータから数字だけを抽出する方法について説明しました。データ分析やデータ処理の際に、数字を抽出することは非常に重要です。Pandasの便利なメソッドや正規表現を活用して、データから必要な数字を効率的に抽出することができます。