ウェブサイト検索

EDA - 探索的データ分析:Python関数の使用


前の記事では、グラフィカルな方法を使用してEDAを実行する方法を見てきました。この記事では、Pythonでの探索的データ分析に使用されるPython関数に焦点を当てます。EDAがどれだけ重要であるかは、データについての簡潔な理解を提供することからわかります。では、無駄な時間をかけずに始めましょう!

探索的データ分析 - EDA

  • EDAはデータを調査し、重要な洞察を要約するために適用されます。
  • それはあなたのデータの基本的な理解、分布、NULL値などを提供します。
  • データをグラフを使って探索するか、いくつかのPython関数を通じて探索することができます。
  • 分析には2つのタイプがあります。単変量と二変量。 単変量では、1つの属性を分析します。しかし、二変量では、ターゲット属性と一緒に属性を分析します。
  • 非グラフィカルアプローチでは、shape、summary、describe、isnull、info、datatypesなどの関数を使用します。
  • グラフィカルアプローチでは、散布図、箱ひげ図、棒グラフ、密度図、相関図などのプロットを使用します。

データをロードする

まずはじめに、エクスプロラトリーデータ分析(EDA)を行うために、タイタニックのデータセットをPythonに読み込みます。

#Load the required libraries
import pandas as pd
import numpy as np
import seaborn as sns

#Load the data
df = pd.read_csv('titanic.csv')


#View the data
df.head()

私たちのデータは探求する準備ができています!

1. データに関する基本情報 - EDA

df.info() 関数は、データセットに関する基本情報を提供します。どんなデータに対しても、その情報を知ることから始めるのが良いです。私たちのデータでどのように機能するか見てみましょう。

#Basic information

df.info()

#Describe the data

df.describe()

  • データの説明 - 記述統計。

この機能を使用すると、上記の出力に表示されているように、ヌル値の数、データ型、およびメモリ使用量とともに、記述統計を確認できます。

2. 重複値

df.duplicate.sum() 関数を使用して、もしあれば存在する重複値の合計を求めることができます。この関数は、データに存在する場合、重複値の数を表示します。

#Find the duplicates

df.duplicated().sum()

0

さて、その関数は '0' を返しました。これは、私たちのデータセットに重複値が一つも存在しないことを意味しており、知っておくべき非常に良いことです。

3. データ内のユニークな値

特定の列におけるユニークな値の数は、pythonのunique()関数を使用して見つけることができます。

#unique values

df['Pclass'].unique()

df['Survived'].unique()

df['Sex'].unique()
array([3, 1, 2], dtype=int64)


array([0, 1], dtype=int64)


array(['male', 'female'], dtype=object)

unique() 関数は、データに存在するユニークな値を返し、それは非常に素晴らしいです!

4. ユニークカウントを可視化する

はい、データに存在するユニークな値を視覚化できます。そのために、seabornライブラリを使用します。sns.countplot()関数を呼び出し、カウントプロットを描画する変数を指定する必要があります。

#Plot the unique values

sns.countplot(df['Pclass']).unique()

それは素晴らしいです!あなたはうまくやっています。それはそれほど簡単です。ただし、EDAには2つのアプローチがあり、グラフィカルと非グラフィカルを組み合わせることで、全体像を把握することができます。

5. NULL値を見つける

欠損値を見つけることは、探索的データ分析(EDA)において最も重要なステップです。何度も言ったように、データの品質を確保することが重要です。それでは、欠損値をどのように見つけることができるか見てみましょう。

#Find null values

df.isnull().sum()
PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2

dtype: int64

ああ、‘年齢’と‘キャビン’の変数にヌル値がいくつかあります。しかし、心配しないでください。私たちはすぐにそれらに対処する方法を見つけます。

6. NULL値を置き換える

こんにちは、すべてのnull値を特定のデータで置き換えるためのreplace()関数があります。それはとても良いです!

#Replace null values

df.replace(np.nan,'0',inplace = True)

#Check the changes now
df.isnull().sum()
PassengerId    0
Survived       0
Pclass         0
Name           0
Sex            0
Age            0
SibSp          0
Parch          0
Ticket         0
Fare           0
Cabin          0
Embarked       0

dtype: int64

ワオ!それは素晴らしいですね。データ内のヌル値を見つけて置き換えるのは非常に簡単です。私はヌル値を0に置き換えました。平均や中央値のようなより意味のある方法を選ぶこともできます。

7. データ型を知る

探索しているデータ型を知ることは非常に重要であり、プロセスも簡単です。どのように機能するか見てみましょう。

#Datatypes

df.dtypes
PassengerId      int64
Survived         int64
Pclass           int64
Name            object
Sex             object
Age             object
SibSp            int64
Parch            int64
Ticket          object
Fare           float64
Cabin           object
Embarked        object

dtype: object

それでおしまいです。このためにdtypes関数を使用する必要があります。そうすれば、各属性のデータ型を取得できます。

8. データをフィルタリングする

はい、いくつかのロジックに基づいてデータをフィルタリングできます。

#Filter data

df[df['Pclass']==1].head()

上記のコードがクラス1に属するデータ値のみを返したことがわかります。

9. クイックボックスプロット

任意の数値列に対して、一行のコードを使用して箱ひげ図を作成できます。

#Boxplot

df[['Fare']].boxplot()

10. 相関プロット - EDA

最後に、変数間の相関を見つけるために、相関関数を利用することができます。これにより、異なる変数間の相関の強さの概念を理解することができます。

#Correlation 

df.corr()

これは、+1 から -1 までの範囲を持つ相関行列で、+1 は非常に正の相関があり、-1 は非常に負の相関があることを示しています。

下に示すように、seabornライブラリを使用して相関行列を視覚化することもできます。

#Correlation plot

sns.heatmap(df.corr())

エンディングノート - EDA

EDAは、あらゆる分析の最も重要な部分です。データについて多くのことを知ることができます。EDAを使えば、ほとんどの質問の答えを見つけることができるでしょう。データを視覚的に探るために使用されるPythonの関数の多くを示そうとしました。この記事から何か得られたことを願っています。

今のところそれだけです!楽しいPythonを :)

さらに読む: 探索的データ分析

関連記事: