Exploratory Data Analysis (EDA)は、データサイエンスプロジェクトにおいて不可欠なステップであり、データを理解し、パターンを検出し、潜在的な問題を特定することができます。この記事では、PandasとMatplotlibという2つの人気のあるPythonライブラリを使ってEDAを行う方法を探ります。Pandasはデータ操作および分析のための強力なライブラリであり、Matplotlibはデータ可視化のための多機能なライブラリです。データをpandas DataFrameに読み込む基本、pandas関数を使用してデータを探索する方法、データのクリーニング、そして最後にMatplotlibを使用してデータを可視化する方法をカバーします。この記事を読み終える頃には、PandasとMatplotlibを使ってPythonでEDAを行う方法について堅実な理解を得るでしょう。
ライブラリとデータのインポート
ライブラリのインポート
PythonコードでpandasおよびMatplotlibライブラリを使用するには、最初にそれらをインポートする必要があります。これは、ライブラリ名の後にimport
ステートメントを使用して行うことができます。
python import pandas as pd
import matplotlib.pyplot as plt
この例では、データサイエンスコミュニティで一般的な慣習である’pd’という別名でpandasをインポートしています。また、matplotlib.pyplotを’plt’という別名でインポートしています。これらのライブラリをインポートすることで、データとの作業や可視化の作成にそれらの関数やメソッドを使用できます。
データの読み込み
必要なライブラリをインポートしたら、データをpandasのDataFrameに読み込むことができます。PandasはCSV、Excel、JSONなど、さまざまなファイル形式からデータを読み込むためのいくつかのメソッドを提供しています。最も一般的な方法はread_csv
で、CSVファイルからデータを読み取り、DataFrameを返します。
python# Load data into a pandas DataFrame
data = pd.read_csv('path/to/data.csv')
この例では、’path/to/data.csv’にあるCSVファイルからデータを読み込み、’data’という変数に格納しています。’path/to/data.csv’を実際のデータファイルのパスに置き換えてください。
PandasのDataFrameにデータを読み込むことで、pandasの関数やメソッドを使用してデータを簡単に操作したり分析したりできます。DataFrameは2次元の表形式のデータ構造で、データを構造化されたり整理されたりして扱うことができます。データの選択、フィルタリング、グループ化、集計、可視化のための関数を提供しています。
データの探索
head()
およびtail()
head()
およびtail()
関数は、それぞれデータの最初の数行と最後の数行を表示するために使用されます。これらの関数は、デフォルトでデータの最初/最後の5行を表示しますが、引数として異なる行数を指定できます。
python# View the first 5 rows of the data
print(data.head())
# データの最後の10行を表示
print(data.tail(10))
info()
info()
関数は、DataFrameに関する情報を提供します。これには、行数と列数、各列のデータ型、非null値の数が含まれます。この関数は、欠損値を特定し、各列の適切なデータ型を決定するのに役立ちます。
python# Get information about the data
print(data.info())
describe()
データフレーム内の数値列に対する要約統計量を提供するdescribe()
関数は、カウント、平均、標準偏差、最小値、最大値、四分位数を含みます。この関数は、データの分布の概要を迅速に把握するのに役立ちます。
python# Get summary statistics for the data
print(data.describe())
value_counts()
列内の各一意値の出現数をカウントするために使用されるvalue_counts()
関数は、データ内の特定の値の頻度を識別するのに役立ちます。
python# Count the number of unique values in a column
print(data['column_name'].value_counts())
これらは、データを探索するために使用できるパンダ関数のいくつかの例に過ぎません。データ探索の特定のニーズに応じて、他にも多くの関数を使用できます。たとえば、欠損値をチェックするためのisnull()
、特定の列でデータをグループ化するためのgroupby()
、列間の相関係数を計算するためのcorr()
などです。
データクリーニング
isnull()
データフレーム内の欠損またはnull値をチェックするために使用されるisnull()
関数は、元のデータフレームと同じ形状のデータフレームを返し、データが欠損している場所はTrue値、データが存在する場所はFalse値を返します。各列の欠損値の数をカウントするためにsum()
関数を使用できます。
python# Check for missing values
print(data.isnull().sum())
dropna()
dropna()
関数は、欠損またはnull値を持つ行や列を削除するために使用されます。デフォルトでは、この関数は少なくとも1つの欠損値を含む任意の行を削除します。欠損値をチェックする列を指定するためにsubset
引数を使用し、欠損値を含む行を削除するか、またはすべての値が欠損している行のみを削除するかを指定するためにhow
引数を使用できます。
python# Drop rows with missing values
data = data.dropna()
drop_duplicates()
drop_duplicates()
関数は、DataFrameから重複した行を削除するために使用されます。デフォルトでは、この関数はすべての列で同じ値を持つすべての行を削除します。重複をチェックする列を指定するためにsubset
引数を使用できます。
python# Drop duplicate rows
data = data.drop_duplicates()
replace()
replace()
関数は、列内の値を新しい値で置き換えるために使用されます。置き換える古い値と置き換える新しい値を指定できます。この関数は、スペルミスや一貫していないフォーマットなどのデータ品質の問題を処理するために役立ちます。
python# Replace values in a column
data['column_name'] = data['column_name'].replace('old_value', 'new_value')
これらは、データをクリーンアップするために使用できるpandas関数のいくつかの例に過ぎません。特定のデータクリーニングのニーズに応じて、他にも多くの関数を使用できます。例えば、欠損値を特定の値またはメソッドで埋めるためのfillna()
、列のデータ型を変換するためのastype()
、外れ値をトリミングするためのclip()
などです。
データクリーニングは、データ分析の準備において重要な役割を果たします。そのプロセスを自動化することで、時間を節約し、データの品質を確保できます。先述のパンダの機能に加えて、自動化技術を適用してデータクリーニングのワークフローを合理化することができます。例えば、欠損値の処理、重複の削除、複数のデータセット間での値の置換を行うために再利用可能な関数やパイプラインを作成することができます。さらに、欠損値を賢明に補完するインパディングや、一貫したフォーマットを特定して修正するための正規表現などの高度な技術を活用することもできます。パンダの機能の力を自動化戦略と組み合わせることで、効率的にデータをクリーンアップし、標準化し、探索的データ分析(EDA)の信頼性と精度を向上させることができます。
データ可視化
データ可視化は、データサイエンスにおいて重要な要素であり、データから迅速かつ容易に洞察を得ることができるためです。Matplotlibは、散布図、折れ線グラフ、棒グラフ、ヒストグラム、箱ひげ図など、幅広いデータ可視化を作成するための人気のあるPythonライブラリです。
以下は、Matplotlibを使用してこれらのタイプの可視化を作成する方法のいくつかの例です。
散布図
A scatter plot is used to visualize the relationship between two continuous variables. You can create a scatter plot in Matplotlib using the scatter()
function.
python# Create a scatter plot
plt.scatter(data['column1'], data['column2']) plt.xlabel('Column 1') plt.ylabel('Column 2') plt.show()
この例では、column1
をx軸、column2
をy軸に配置して散布図を作成しています。また、xlabel()
と ylabel()
関数を使用してx軸とy軸にラベルを追加しています。
ヒストグラム
A histogram is used to visualize the distribution of a single continuous variable. You can create a histogram in Matplotlib using the hist()
function.
python# Create a histogram
plt.hist(data['column'], bins=10) plt.xlabel('Column') plt.ylabel('Frequency') plt.show()
この例では、column
変数のヒストグラムを10個のビンで作成しています。また、xlabel()
関数とylabel()
関数を使用してx軸とy軸にラベルを追加しています。
箱ひげ図
A box plot is used to visualize the distribution of a single continuous variable and to identify outliers. You can create a box plot in Matplotlib using the boxplot()
function.
python# Create a box plot
plt.boxplot(data['column']) plt.ylabel('Column') plt.show()
この例では、column
変数の箱ひげ図を作成しています。また、ylabel()
関数を使用してy軸にラベルを追加しています。
これらは、データの視覚化にMatplotlibでできることのいくつかの例にすぎません。プロジェクトの特定の要件に応じて、他にも多くの関数やテクニックを使用できます。
結論
探索的データ分析(EDA)は、データサイエンスプロジェクトのどれでも重要なステップであり、PythonはEDAを効果的に実行するための強力なツールを提供しています。この記事では、データの読み込み、探索、クリーニング、および視覚化のために、2つの一般的なPythonライブラリであるPandasとMatplotlibを使用する方法を学びました。Pandasはデータの操作と分析を柔軟かつ効率的に行う方法を提供し、Matplotlibは視覚化を作成するための幅広いオプションを提供します。これら2つのライブラリを活用することで、データから迅速かつ容易に洞察を得ることができます。この記事で学んだスキルとテクニックを使って、独自のデータセットでEDAを開始し、データ主導の意思決定を推進するための貴重な洞察を明らかにすることができます。
Source:
https://dzone.com/articles/how-to-use-pandas-and-matplotlib-to-perform-explor