データクレンジングは、データ分析の重要な一部です。データ分析の前に、データをクリーンアップすることで、信頼性の高い分析結果を得ることができます。本記事では、Pythonのデータ分析ライブラリであるPandasを使用して、数値以外のデータを含むデータをクリーンアップする方法を紹介します。
データ型の確認:PandasのDataFrameでデータ型を調べる方法
まずは、データ型を確認する方法を紹介します。PandasのDataFrameでは、各列のデータ型を確認することができます。
import pandas as pd # データの読み込み df = pd.read_csv('data.csv') # データ型の確認 print(df.dtypes)
上記のコードを実行すると、各列のデータ型が表示されます。数値の場合はintまたはfloat、文字列の場合はobjectと表示されます。
数値以外のデータの検出:数値以外のデータが含まれている行や列を特定する方法
次に、数値以外のデータが含まれている行や列を特定する方法を紹介します。PandasのDataFrameでは、各要素に対して、数値であるかどうかを判定することができます。
# 数値以外のデータが含まれている行の抽出 non_numeric_rows = df.apply(lambda x: not pd.to_numeric(x, errors='coerce').notnull().all(), axis=1) # 数値以外のデータが含まれている列の抽出 non_numeric_cols = df.apply(lambda x: not pd.to_numeric(x, errors='coerce').notnull().all()) print('数値以外のデータが含まれている行:', df[non_numeric_rows]) print('数値以外のデータが含まれている列:', df.columns[non_numeric_cols])
上記のコードを実行すると、数値以外のデータが含まれている行と列が表示されます。
数値以外のデータの削除:特定された行や列の数値以外のデータを削除する手順
次に、特定された行や列の数値以外のデータを削除する手順を紹介します。PandasのDataFrameでは、drop関数を使用することで、指定した行や列を削除することができます。
# 数値以外のデータが含まれている行を削除 df = df[~non_numeric_rows] # 数値以外のデータが含まれている列を削除 df = df.loc[:, ~non_numeric_cols] print(df)
上記のコードを実行すると、数値以外のデータが含まれている行や列が削除されたDataFrameが表示されます。
データフレームの再構築:削除されたデータを除いてデータフレームを再構築する方法
削除されたデータを除いて、元のデータフレームを再構築する方法を紹介します。Pandasのconcat関数を使用することで、削除されたデータを除いたDataFrameを再構築することができます。
# 削除された行を除いたデータフレームを作成 df_cleaned = pd.concat([df.select_dtypes(include=['float', 'int']), df.select_dtypes(include=['object'])], axis=1) print(df_cleaned)
上記のコードを実行すると、削除されたデータを除いたDataFrameが表示されます。
データクレンジングの実践例:実際のデータセットを用いた数値以外のデータの削除の例
ここでは、実際のデータセットを使用して、数値以外のデータの削除を行う例を紹介します。
# データの読み込み df = pd.read_csv('sales_data.csv') # データ型の確認 print(df.dtypes) # 数値以外のデータが含まれている行の抽出 non_numeric_rows = df.apply(lambda x: not pd.to_numeric(x, errors='coerce').notnull().all(), axis=1) # 数値以外のデータが含まれている列の抽出 non_numeric_cols = df.apply(lambda x: not pd.to_numeric(x, errors='coerce').notnull().all()) # 数値以外のデータが含まれている行を削除 df = df[~non_numeric_rows] # 数値以外のデータが含まれている列を削除 df = df.loc[:, ~non_numeric_cols] # 削除されたデータを除いたデータフレームを作成 df_cleaned = pd.concat([df.select_dtypes(include=['float', 'int']), df.select_dtypes(include=['object'])], axis=1) # 再構築したデータフレームを表示 print(df_cleaned)
上記のコードを実行すると、削除されたデータを除いたDataFrameが表示されます。
まとめ
本記事では、Pythonのデータ分析ライブラリであるPandasを使用して、数値以外のデータを含むデータをクリーンアップする方法を紹介しました。まず、データ型を確認する方法を紹介しました。次に、数値以外のデータが含まれている行や列を特定する方法を紹介しました。そして、特定された行や列の数値以外のデータを削除する手順を紹介しました。最後に、削除されたデータを除いて、元のデータフレームを再構築する方法を紹介しました。
データクレンジングは、データ分析の重要な一部であり、信頼性の高い分析結果を得るために必要です。Pandasを使用して、数値以外のデータを含むデータをクリーンアップすることで、高品質な分析結果を得ることができます。