データクレンジングは、データ分析の重要な一部です。データ分析の前に、データをクリーンアップすることで、信頼性の高い分析結果を得ることができます。本記事では、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を使用して、数値以外のデータを含むデータをクリーンアップすることで、高品質な分析結果を得ることができます。

![[Python]BeautifulSoupでClassとDivからhrefを抽出 !](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1313.jpg)
![[Python]CSVファイルを作成時の文字化け対策、文字コードの指定](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-298.jpg)
![[Python]複数の図を並べて重ねる !](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1400.jpg)

![[Python]logging syslog.syslogを使ったシステムログ管理方法](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1332.jpg)