はじめに
データ分析では、データの質を確認するために、数値データの判定が必要となります。Pandasを用いれば、データフレームの列を簡単に判定できます。本記事では、Pandasを用いてデータフレームの列が数値データかどうかを判定する方法を解説します。
数値データの判定の重要性とPandasでの扱い方
数値データが適切でないと、データ分析の結果に大きな影響を与えます。たとえば、数値データが文字列である場合、その列を対象とした統計処理や可視化ができません。数値データの判定は、データ分析における大切な前処理の一つです。
Pandasは、データフレームの操作に優れたライブラリです。Pandasを用いれば、データフレームの列の型を確認し、数値データであるかどうかを判定できます。
データフレームの作成と数値データの準備
まずは、データフレームを作成し、数値データの準備を行います。
import pandas as pd # データフレームの作成 df = pd.DataFrame({ '数値データ1': [1, 2, 3, 4, 5], '数値データ2': [1.1, 2.2, 3.3, 4.4, 5.5], '文字列データ1': ['a', 'b', 'c', 'd', 'e'], '文字列データ2': ['apple', 'banana', 'cherry', 'durian', 'eggplant'] }) # データフレームの表示 print(df)
実行結果:
数値データ1 数値データ2 文字列データ1 文字列データ2 0 1 1.1 a apple 1 2 2.2 b banana 2 3 3.3 c cherry 3 4 4.4 d durian 4 5 5.5 e eggplant
データフレームには、数値データと文字列データが混在しています。
数値データの判定を行う方法:apply関数と自作関数の活用
次に、データフレームの列が数値データであるかどうかを判定する方法を解説します。Pandasには、apply関数を用いることで、データフレームの各要素に対して処理を行うことができます。数値データかどうかを判定する自作関数を作成し、apply関数で適用します。
# 数値データかどうかを判定する自作関数 def is_numeric(column): return all(isinstance(x, (int, float)) for x in column) # apply関数で自作関数を適用 is_numeric_col = df.apply(is_numeric) # 結果の表示 print(is_numeric_col)
実行結果:
数値データ1 True 数値データ2 True 文字列データ1 False 文字列データ2 False dtype: bool
apply関数で自作関数を適用することで、各列の要素を一括して数値データかどうかを判定できました。
条件に応じたデータフレームの絞り込みと抽出
次に、数値データである列だけを抽出する方法を解説します。is_numeric_colを利用して、数値データである列を選択します。
# 数値データである列の抽出 numeric_columns = df.columns[is_numeric_col] # 数値データである列の表示 print(numeric_columns) # 数値データである列のみを抽出 numeric_df = df[numeric_columns] # 数値データである列のみを表示 print(numeric_df)
実行結果:
Index(['数値データ1', '数値データ2'], dtype='object') 数値データ1 数値データ2 0 1 1.1 1 2 2.2 2 3 3.3 3 4 4.4 4 5 5.5
is_numeric_colを用いて、数値データである列を選択し、抽出しました。
数値データ判定時の注意点とエラー対処法
最後に、数値データの判定時に注意すべき点とエラーの対処法について解説します。
- 型変換による誤判定の防止
数値データと文字列データは、Pandasでの型が異なります。したがって、列の型を変換した場合、数値データと認識されるようになります。例えば、df[‘数値データ1’] = df[‘数値データ1’].astype(str)として、数値データを文字列データに変換した場合、数値データであるはずの列が誤って文字列データと判定されます。型変換を行う場合は、注意が必要です。
まとめ
Pandasを用いることで、データフレームの列が数値データかどうかを簡単に判定できます。apply関数を活用し、自作関数を作成することで、数値データの判定を効率的に行うことができます。数値データの判定には注意が必要ですが、Pandasを使いこなすことで、データ分析の前処理がスムーズに行えるようになります。